import type { Action, PermissionConfig, PermissionContext, PermissionProvider, PermissionProviderType, PermissionRule, Resource, RoleDefinition } from "./types"; export declare class PermissionsManager { private provider; private providerType; constructor(config?: PermissionConfig); private detectProvider; getProviderType(): PermissionProviderType; can(context: PermissionContext, action: Action, resource: Resource, subject?: unknown, field?: string): boolean; cannot(context: PermissionContext, action: Action, resource: Resource, subject?: unknown, field?: string): boolean; getRulesForRole(role: string): PermissionRule[]; defineRole(definition: RoleDefinition): void; buildAbilityFor(context: PermissionContext): unknown; getProvider(): PermissionProvider; } export declare function createPermissions(config?: PermissionConfig): PermissionsManager; export declare function getPermissions(): PermissionsManager; export declare function resetPermissions(): void; //# sourceMappingURL=factory.d.ts.map