/**
 * Skill Permission Service
 *
 * Hard enforcement gate for autonomyLevel. Checks whether an agent is
 * permitted to execute a given skill based on their autonomy level, role,
 * and delegation authority.
 *
 * This replaces the "soft" prompt-only approach where agents could ignore
 * autonomy constraints. Skills blocked by this gate are filtered out
 * before the agent sees them.
 *
 * Rules:
 * - directed: execute only, no delegation/decomposition/deployment
 * - bounded: delegate within scope, no production deployment
 * - domain_autonomous: most things allowed, no prod deploy, no budget changes
 * - system: all permissions (reconciler, triggers)
 *
 * @module services/skill/skill-permission
 */
type AutonomyLevel = 'directed' | 'bounded' | 'domain_autonomous';
interface PermissionContext {
    autonomyLevel?: AutonomyLevel;
    role?: string;
    canDelegate?: boolean;
    ownershipDomains?: string[];
}
interface PermissionResult {
    allowed: boolean;
    reason?: string;
}
export declare class SkillPermissionService {
    private static instance;
    private readonly logger;
    private constructor();
    static getInstance(): SkillPermissionService;
    static resetInstance(): void;
    /**
     * Check if an agent is permitted to execute a skill.
     *
     * @param skillName - The skill to check
     * @param context - Agent's permission context
     * @returns Permission result with reason if blocked
     */
    canExecuteSkill(skillName: string, context: PermissionContext): PermissionResult;
    /**
     * Filter a list of skill names, removing those not permitted for the agent.
     *
     * @param skillNames - Array of skill names to filter
     * @param context - Agent's permission context
     * @returns Filtered array of permitted skill names
     */
    filterPermittedSkills(skillNames: string[], context: PermissionContext): string[];
    /**
     * Check if a skill is a delegation/management skill.
     */
    private isDelegationSkill;
}
export {};
//# sourceMappingURL=skill-permission.service.d.ts.map