declare const VALID_KEYS: readonly ["default-model", "sonnet-model", "opus-model", "haiku-model", "smart-routing", "permission-mode", "max-turns", "auto-compact", "cost-saver", "session-save", "debug", "zerox-api-key", "base-rpc-url"];
type ConfigKey = (typeof VALID_KEYS)[number];
export interface AppConfig {
    'default-model'?: string;
    'sonnet-model'?: string;
    'opus-model'?: string;
    'haiku-model'?: string;
    'smart-routing'?: string;
    'permission-mode'?: string;
    'max-turns'?: string;
    'auto-compact'?: string;
    /** Research-bloat compaction toggle for the desktop ("false" disables). */
    'cost-saver'?: string;
    'session-save'?: string;
    'debug'?: string;
    /** 0x V2 Swap API key for Base swaps. Free at https://dashboard.0x.org. Each user supplies their own; the on-chain affiliate fee routes to BlockRun regardless. */
    'zerox-api-key'?: string;
    /** Optional Base RPC URL override (Alchemy, QuickNode public, etc.). Defaults to https://mainnet.base.org. */
    'base-rpc-url'?: string;
}
export declare function loadConfig(): AppConfig;
/** Persist a single config key (used by the desktop server for live toggles). */
export declare function setConfigValue(key: ConfigKey, value: string): void;
export declare function configCommand(action: string, keyOrUndefined?: string, value?: string): void;
export {};
