import { GranteeType, NormalizedPermission, PermissionAction, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
/**
 * Wraps `MJ: AI Agent Permissions` behind the unified {@link PermissionProviderBase} contract.
 *
 * AIAgentPermission rows grant either a User (via UserID) or a Role (via RoleID) — never both;
 * the underlying entity enforces this via a table-level validator. Action mapping:
 * - CanView → `Read`
 * - CanRun  → `Execute`
 * - CanEdit → `Update`
 * - CanDelete → `Delete`
 *
 * User+Role grants for the same user are OR-aggregated (any grant of an action suffices).
 *
 * `resourceType` is `"AI Agents"`. `resourceId` is the agent ID.
 */
export declare class AIAgentPermissionProvider extends PermissionProviderBase {
    readonly DomainName = "AI Agent Permissions";
    readonly Description = "User- or role-level permissions on AI agents. Actions: View (Read), Run (Execute), Edit (Update), Delete.";
    readonly SupportedGranteeTypes: GranteeType[];
    readonly SupportedActions: PermissionAction[];
    readonly SupportsDeny = false;
    GetResourceTypes(): string[];
    CheckPermission(user: UserInfo, _resourceType: string, resourceId: string | null, action: PermissionAction): Promise<PermissionCheckResult>;
    GetEffectivePermissions(user: UserInfo, _resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
    GetUserResources(user: UserInfo, resourceType?: string): Promise<NormalizedPermission[]>;
    GetResourcePermissions(resourceType: string, resourceId: string): Promise<NormalizedPermission[]>;
    private fetchPermissionsForAgent;
    private actionsForUser;
    private rowActions;
}
//# sourceMappingURL=AIAgentPermissionProvider.d.ts.map