import type { Ability } from '@casl/ability';
import type { Core, UID, Modules } from '@strapi/types';
export declare const ACTIONS: {
    readonly read: "plugin::content-manager.explorer.read";
    readonly create: "plugin::content-manager.explorer.create";
    readonly update: "plugin::content-manager.explorer.update";
    readonly delete: "plugin::content-manager.explorer.delete";
    readonly publish: "plugin::content-manager.explorer.publish";
    readonly unpublish: "plugin::content-manager.explorer.publish";
    readonly discard: "plugin::content-manager.explorer.update";
};
type Entity = Modules.EntityService.Result<UID.ContentType>;
type Query = {
    page?: string;
    pageSize?: string;
    sort?: string;
};
declare const _default: ({ strapi }: {
    strapi: Core.Strapi;
}) => {
    create: ({ userAbility, model }: {
        userAbility: Ability;
        model: string;
    }) => {
        can: (action: string, entity?: Entity, field: string) => boolean;
        cannot: (action: string, entity?: Entity, field: string) => boolean;
        requiresEntity: (action: string) => boolean;
        sanitizeOutput: (data: Entity, { action }?: {
            action?: string;
        }) => any;
        sanitizeQuery: (query: Query, { action }?: {
            action?: string;
        }) => any;
        sanitizeCreateInput: (data: any) => any;
        sanitizeUpdateInput: (entity: Entity) => (data: any) => any;
        validateQuery: (query: Query, { action }?: {
            action?: string;
        }) => any;
        validateInput: (action: string, data: any, entity?: Entity) => any;
        sanitizedQuery: (query: Query, action?: {
            action?: string;
        }) => Promise<any>;
    };
};
export default _default;
//# sourceMappingURL=permission-checker.d.ts.map