export type LlmProvider = "ollama" | "openai";
export interface AppConfig {
    port: number;
    wsPort: number;
    host: string;
    logLevel: string;
    corsOrigin: string;
    nodeEnv: string;
    jwtSecret: string;
    llmProvider: LlmProvider;
    ollamaUrl: string;
    ollamaModel: string;
    openaiApiKey: string;
    openaiModel: string;
    openaiBaseUrl: string;
    /** Max context window tokens (auto-detected from model name if not set) */
    contextWindow: number;
    hookSecret: string;
    heartbeatCron: string;
    /** URL of the local Faster Whisper server (default http://localhost:8178) */
    whisperUrl: string;
    /** OpenAI model for the real-time voice assistant (Realtime API). */
    realtimeModel: string;
    /** Voice used by the real-time assistant (alloy, echo, shimmer, etc.). */
    realtimeVoice: string;
    /**
     * URL of an upstream/primary gateway to link to as a filesystem node.
     * When set, this gateway opens an outbound WS to the primary, registers
     * itself as a browseable fs-node, and serves browse/roots/op requests from
     * its local disk — making it selectable in the primary's Open Project modal.
     * Empty string disables the link (default).
     */
    primaryGateway: string;
    /** Bearer token used to authenticate the primary-link WS (optional; not needed if the primary runs in development mode). */
    primaryToken: string;
    /** Display name advertised to the primary for this node (defaults to the hostname). */
    nodeName: string;
}
/** Infer context window size from model name. Conservative defaults. */
export declare function inferContextWindow(model: string): number;
export declare function loadConfig(): AppConfig;
//# sourceMappingURL=config.d.ts.map