import { PermitClient } from "../client/PermitClient";
import { PermitExtensionConfig } from "../models/PermitExtensionConfig";
import { IPermitClient } from "../types/IPermitClient";
import { User, Action, Resource, Context } from "../models/PermissionModels";
export declare function createPermitClientExtension(config: PermitExtensionConfig): (client: any) => import("@prisma/client/extension").PrismaClientExtends<import("@prisma/client/runtime").InternalArgs<{}, {}, {}, {
    $permit: {
        client: PermitClient;
        check(user: User, action: Action, resource: Resource, context?: Context): Promise<boolean>;
        enforceCheck(user: User, action: Action, resource: Resource, context?: Context): Promise<void>;
        setUser(user: User): {
            $permitContext: {
                user: User;
            };
        };
        getPermitClient(): IPermitClient;
        getConfig(): PermitExtensionConfig;
        getAllowedResourceIds(userId: string, resourceType: string, action: Action): Promise<string[]>;
        filterQueryResults(action: Action, resourceType: string, results: any[]): Promise<any[]>;
    };
}>>;
