import { GranteeType, NormalizedPermission, PermissionAction, PermissionCheckResult, PermissionProviderBase, UserInfo } from '@memberjunction/core';
/**
 * Wraps `MJ: AI Skill Permissions` behind the unified {@link PermissionProviderBase} contract —
 * the closed-by-default, explicit-grants view that powers the Sharing Center and audit.
 *
 * This is the skill sibling of `AIAgentPermissionProvider`. AISkillPermission rows grant either a
 * User (via UserID) or a Role (via RoleID) — never both; the server entity enforces this. Action
 * mapping:
 * - CanView → `Read`
 * - CanRun  → `Execute`  (request/activate the skill at agent runtime)
 * - CanEdit → `Update`
 * - CanDelete → `Delete`
 *
 * User+Role grants for the same user are OR-aggregated (any grant of an action suffices).
 *
 * `resourceType` is `"AI Skills"`. `resourceId` is the skill ID. NOTE: this provider reports only
 * explicit grants; the open-by-default runtime behavior (no rows → View+Run for everyone) lives in
 * `AISkillPermissionHelper` — see guides/UNIFIED_PERMISSIONS_GUIDE.md for why the two paths differ.
 */
export declare class AISkillPermissionProvider extends PermissionProviderBase {
    readonly DomainName = "AI Skill Permissions";
    readonly Description = "User- or role-level permissions on AI skills. 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 fetchPermissionsForSkill;
    private actionsForUser;
    private rowActions;
}
//# sourceMappingURL=AISkillPermissionProvider.d.ts.map