import type { Core, Modules, UID } from '@strapi/types';
type CollectionListArgs = {
    locale?: string;
    status?: 'draft' | 'published';
    page?: number;
    pageSize?: number;
    sort?: unknown;
    filters?: unknown;
};
/**
 * Creates a handler for listing (paginated) documents of a collection-type.
 * Enforces RBAC read permission and sanitizes query + output via permissionChecker.
 */
export declare const createCollectionListHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args }: {
    args: CollectionListArgs;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for fetching a single collection-type document by `documentId`.
 * Enforces RBAC read permission; returns available locale metadata when the locale is missing.
 */
export declare const createCollectionGetHandler: (uid: UID.CollectionType) => (_strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for creating a new collection-type document.
 * Enforces RBAC create permission; sanitizes input and stamps creator fields.
 */
export declare const createCollectionCreateHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for updating an existing collection-type document draft.
 * Creates a new locale version when the target locale does not yet exist for the document.
 * Enforces RBAC update (or create) permission accordingly.
 */
export declare const createCollectionUpdateHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for deleting a collection-type document (or a specific locale).
 * Enforces RBAC delete permission on every locale version before deletion.
 */
export declare const createCollectionDeleteHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for publishing a collection-type document draft.
 * Enforces RBAC publish permission; throws NotFound when the draft or document is missing.
 */
export declare const createCollectionPublishHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for unpublishing a collection-type document.
 * Optionally discards the draft in the same transaction when `discardDraft` is true.
 * Enforces RBAC unpublish (and discard) permission.
 */
export declare const createCollectionUnpublishHandler: (uid: UID.CollectionType) => (strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
/**
 * Creates a handler for discarding the draft of a collection-type document.
 * Restores the published version as the draft. Enforces RBAC discard permission.
 */
export declare const createCollectionDiscardDraftHandler: (uid: UID.CollectionType) => (_strapi: Core.Strapi, context: Modules.MCP.McpHandlerContext) => ({ args, }: {
    args: Record<string, unknown>;
}) => Promise<Modules.MCP.McpToolHandlerReturn>;
export {};
//# sourceMappingURL=collection-handlers.d.ts.map