export interface SandboxConfig {
    allowedPaths: string[];
    readOnlyPaths: string[];
    blockedPaths: string[];
    networkEnabled: boolean;
    allowedDomains?: string[];
    timeoutMs: number;
    maxOutputSize: number;
    method: 'none' | 'firejail' | 'docker' | 'native';
}
export interface SandboxResult {
    stdout: string;
    stderr: string;
    exitCode: number;
    timedOut: boolean;
    sandboxed: boolean;
}
/**
 * Sandbox Manager for secure command execution
 */
export declare class SandboxManager {
    private config;
    private firejailAvailable;
    constructor(config?: Partial<SandboxConfig>);
    /**
     * Check if firejail is available on the system
     */
    isFirejailAvailable(): Promise<boolean>;
    /**
     * Validate a command before execution
     */
    validateCommand(command: string): {
        valid: boolean;
        reason?: string;
    };
    /**
     * Execute a command with sandbox protection
     */
    execute(command: string): Promise<SandboxResult>;
    /**
     * Execute with firejail sandbox (Linux)
     */
    private executeWithFirejail;
    /**
     * Execute with native restrictions (basic validation only)
     */
    private executeNative;
    /**
     * Raw command execution
     */
    private executeRaw;
    /**
     * Get current sandbox configuration
     */
    getConfig(): SandboxConfig;
    /**
     * Update sandbox configuration
     */
    updateConfig(updates: Partial<SandboxConfig>): void;
    /**
     * Add a path to blocked list
     */
    blockPath(pathToBlock: string): void;
    /**
     * Add a path to allowed list
     */
    allowPath(pathToAllow: string): void;
    /**
     * Format sandbox status for display
     */
    formatStatus(): string;
}
export declare function getSandboxManager(config?: Partial<SandboxConfig>): SandboxManager;
export declare function resetSandboxManager(): void;
