export type AutonomyLevel = "suggest" | "confirm" | "auto" | "full" | "yolo";
export interface YOLOConfig {
    enabled: boolean;
    allowList: string[];
    denyList: string[];
    maxAutoEdits: number;
    maxAutoCommands: number;
    safeMode: boolean;
    allowedPaths: string[];
    blockedPaths: string[];
    sessionEditCount: number;
    sessionCommandCount: number;
}
export interface AutonomyConfig {
    level: AutonomyLevel;
    dangerousOperations: string[];
    safeOperations: string[];
    sessionOverrides: Map<string, AutonomyLevel>;
    yolo: YOLOConfig;
}
export declare class AutonomyManager {
    private config;
    private configPath;
    constructor();
    private loadConfig;
    private saveConfig;
    getLevel(): AutonomyLevel;
    setLevel(level: AutonomyLevel): void;
    setOperationOverride(operation: string, level: AutonomyLevel): void;
    clearOperationOverride(operation: string): void;
    clearAllOverrides(): void;
    /**
     * Determines if confirmation is required for an operation
     * @param operation The operation type or command
     * @param toolName Optional tool name for more specific checks
     * @returns true if confirmation is required
     */
    shouldConfirm(operation: string, toolName?: string): boolean;
    private levelRequiresConfirmation;
    private isDangerousOperation;
    private isSafeOperation;
    addDangerousOperation(operation: string): void;
    removeDangerousOperation(operation: string): void;
    addSafeOperation(operation: string): void;
    removeSafeOperation(operation: string): void;
    enableYOLO(safeMode?: boolean): void;
    disableYOLO(): void;
    isYOLOEnabled(): boolean;
    getYOLOConfig(): YOLOConfig;
    updateYOLOConfig(updates: Partial<YOLOConfig>): void;
    addToYOLOAllowList(command: string): void;
    removeFromYOLOAllowList(command: string): void;
    addToYOLODenyList(command: string): void;
    removeFromYOLODenyList(command: string): void;
    /**
     * Check if a command should auto-execute in YOLO mode
     */
    shouldYOLOExecute(command: string, type: "bash" | "edit"): {
        allowed: boolean;
        reason: string;
    };
    /**
     * Check if a file path is allowed for editing in YOLO mode
     */
    isPathAllowedForYOLO(filePath: string): {
        allowed: boolean;
        reason: string;
    };
    /**
     * Record an auto-execution in YOLO mode
     */
    recordYOLOExecution(type: "bash" | "edit"): void;
    /**
     * Reset session counts (call at session start)
     */
    resetSessionCounts(): void;
    /**
     * Get remaining auto-executions
     */
    getRemainingYOLOExecutions(): {
        edits: number;
        commands: number;
    };
    formatYOLOStatus(): string;
    formatStatus(): string;
    formatHelp(): string;
}
export declare function getAutonomyManager(): AutonomyManager;
