/**
 * Advanced Configuration
 *
 * Features:
 * 1. Custom File Suggestion Provider - script-based file suggestions
 * 2. Effort Level Control - low/medium/high model parameters
 * 3. Auto-Compact Threshold - context window compaction trigger
 * 4. Fallback Model Config - automatic model fallback on errors
 * 5. Config Backup Rotation - backup/restore with rotation
 * 6. Devcontainer Support - detect and manage devcontainer configs
 * 7. Setting Sources Control - enable/disable config sources
 */
export interface FileSuggestionConfig {
    script?: string;
    maxResults: number;
}
export declare class FileSuggestionProvider {
    private config;
    constructor(config?: Partial<FileSuggestionConfig>);
    getSuggestions(query: string): Promise<string[]>;
    hasCustomProvider(): boolean;
    setScript(scriptPath: string): void;
    getConfig(): FileSuggestionConfig;
}
export type EffortLevel = 'low' | 'medium' | 'high';
export declare class EffortLevelManager {
    private level;
    constructor(level?: EffortLevel);
    setLevel(level: EffortLevel): void;
    getLevel(): EffortLevel;
    static fromEnv(): EffortLevel;
    getModelParams(): {
        temperature: number;
        maxTokens: number;
        topP: number;
    };
}
export declare class AutoCompactConfig {
    private thresholdPercent;
    constructor(threshold?: number);
    setThreshold(percent: number): void;
    getThreshold(): number;
    static fromEnv(): number;
    shouldCompact(currentUsage: number, maxCapacity: number): boolean;
    getUsagePercent(current: number, max: number): number;
}
export interface FallbackModelConfig {
    primaryModel: string;
    fallbackModel: string;
    triggerOnOverload: boolean;
    triggerOnError: boolean;
    triggerOnTimeout: boolean;
    timeoutMs: number;
}
export declare class FallbackModelManager {
    private config;
    private fallbackActive;
    private fallbackCount;
    constructor(config?: Partial<FallbackModelConfig>);
    shouldFallback(error: {
        code?: string;
        status?: number;
        message?: string;
    }): boolean;
    getCurrentModel(): string;
    activateFallback(): void;
    deactivateFallback(): void;
    isFallbackActive(): boolean;
    getFallbackCount(): number;
    getConfig(): FallbackModelConfig;
}
export declare class ConfigBackupRotation {
    private maxBackups;
    private backupDir;
    constructor(backupDir: string, maxBackups?: number);
    createBackup(configPath: string): string;
    listBackups(configName: string): Array<{
        path: string;
        timestamp: number;
    }>;
    rotateBackups(configName: string): number;
    restoreBackup(backupPath: string, targetPath: string): boolean;
    getLatestBackup(configName: string): string | null;
    getMaxBackups(): number;
}
export interface DevcontainerConfig {
    name: string;
    image?: string;
    dockerFile?: string;
    features: Record<string, any>;
    forwardPorts: number[];
    postCreateCommand?: string;
    remoteUser?: string;
}
export declare class DevcontainerManager {
    private config;
    constructor();
    detect(): boolean;
    loadConfig(configPath?: string): DevcontainerConfig | null;
    generateConfig(options: Partial<DevcontainerConfig>): DevcontainerConfig;
    isInsideDevcontainer(): boolean;
    getContainerName(): string | null;
    getForwardedPorts(): number[];
    serializeConfig(config: DevcontainerConfig): string;
}
export type SettingSource = 'user' | 'project' | 'local' | 'enterprise' | 'env';
export declare class SettingSourceManager {
    private enabledSources;
    private allSources;
    constructor(sources?: SettingSource[]);
    static fromFlag(flag: string): SettingSourceManager;
    isSourceEnabled(source: SettingSource): boolean;
    enableSource(source: SettingSource): void;
    disableSource(source: SettingSource): void;
    getEnabledSources(): SettingSource[];
    getAllSources(): SettingSource[];
    toFlag(): string;
}
