export declare const PERMISSION_AUTHORITY_MODES: readonly ["off", "shared", "authoritative"];
export type PermissionAuthorityMode = typeof PERMISSION_AUTHORITY_MODES[number];
export declare const PERMISSION_AUTHORITY_HOSTS: readonly ["claude-code", "codex", "cursor", "vscode", "windsurf", "gemini-cli"];
export type PermissionAuthorityHost = typeof PERMISSION_AUTHORITY_HOSTS[number];
export interface PermissionAuthorityHostState {
    mode: PermissionAuthorityMode;
    reason?: string;
    updatedAt: string;
    backupPath?: string;
    lastSyncedAt?: string;
    scope?: 'user';
}
export interface PermissionAuthorityState {
    version: 1;
    defaultMode: PermissionAuthorityMode;
    updatedAt: string;
    hosts: Partial<Record<PermissionAuthorityHost, PermissionAuthorityHostState>>;
}
export interface AuthorityPolicySnapshot {
    combinedAllowPatterns?: string[];
    combinedConfirmPatterns?: string[];
    combinedDenyPatterns?: string[];
}
export interface SetPermissionAuthorityModeInput {
    host: PermissionAuthorityHost;
    mode: PermissionAuthorityMode;
    reason?: string;
    policies?: AuthorityPolicySnapshot;
    homeDir?: string;
    now?: Date;
}
export declare function getPermissionAuthorityStatePath(homeDir?: string): string;
export declare function getDefaultPermissionAuthorityState(now?: Date): PermissionAuthorityState;
export declare function readPermissionAuthorityState(homeDir?: string): Promise<PermissionAuthorityState>;
export declare function writePermissionAuthorityState(state: PermissionAuthorityState, homeDir?: string): Promise<void>;
export declare function getHostAuthorityMode(state: PermissionAuthorityState, host: PermissionAuthorityHost): PermissionAuthorityMode;
export declare function setPermissionAuthorityMode(input: SetPermissionAuthorityModeInput): Promise<PermissionAuthorityState>;
//# sourceMappingURL=permissionAuthority.d.ts.map