export interface KoneckFileConfig { /** Clear the screen when the interface opens; `'screen'` keeps the scrollback. */ clearOnStart?: boolean | 'screen'; /** Continue an unfinished plan on resume; see resumeSession. */ resumeContinues?: boolean; provider?: string; model?: string; maxTurns?: number; requireApproval?: boolean; useWorktree?: boolean; baseURL?: string; apiKey?: string; agentConcurrency?: number; altScreen?: boolean; /** Whether the working spinner is drawn while a turn is running. */ animate?: boolean; /** Whether native terminal selections are copied to the system clipboard automatically. */ autoCopy?: boolean; /** Whether the live changes panel is shown beside the interactive conversation. */ diffPanel?: boolean; contextTokens?: number; /** Response presentation style selected by the user. */ personality?: 'default' | 'friendly' | 'minimal'; /** Endpoints by provider name, so a project can pin more than one provider's address. */ endpoints?: Record; /** Models by provider name, so switching providers restores the model you use with it. */ models?: Record; /** Whether KONECK may trim its tool list to fit a window that cannot hold it. */ leanTools?: boolean; /** Whether the wheel scrolls the transcript, at the cost of mouse selection. */ mouse?: boolean; /** Send an anonymous diagnostic report when a run ends. Off unless set; needs telemetryUrl too. */ telemetry?: boolean; /** Where an enabled report goes. Nothing is sent until both this and telemetry are set. */ telemetryUrl?: string; } export declare function globalConfigPath(): string; export declare function loadGlobalConfig(): Promise; export declare function saveGlobalConfig(cfg: KoneckFileConfig): Promise; /** * Writes a configuration that may hold an API key. Explicit permissions are essential because a * permissive umask (for example 0002 on a shared development machine) otherwise creates a * group-readable credential file. The atomic replacement also avoids following a hostile * symlink at the config path or leaving a partially-written credentials file after a crash. */ export declare function writePrivateConfigFile(file: string, cfg: KoneckFileConfig): Promise; /** Logout removes only a credential Koneck persisted; provider and workflow preferences remain. */ export declare function withoutStoredApiKey(cfg: KoneckFileConfig): KoneckFileConfig; /** * Nearest project config found by walking up from startDir. Unlike loadConfig this does not * fall back to the global file, so callers can order project settings above global ones. */ /** * The nearest project configuration, searching upward from a workspace. * * The search stops at the home directory, and does not read the home directory itself. That is * the whole of the fix for a confusing one. * * `~/.koneckrc` is the *global* configuration. `loadGlobalConfig` reads it deliberately and the * caller ranks it lowest, beneath anything set with `/config` and anything set for the project. * But this function walked to the filesystem root, so from any workspace under the home directory * it also found that same file — and returned it as a project config, which the caller ranks * *highest*. One file, read twice, at opposite ends of the order, and the wrong end won. * * Reported as KONECK opening in `~/dev/emabhodini` on provider `omni` and a model served by an * Ollama on another machine, when `/config` had been used to set `bai`. Nothing was inferred and * nothing was guessed: a stale global file was being obeyed as though the workspace had asked * for it. * * A `.koneckrc` in an intermediate directory — `~/dev`, say — is still a real project config for * everything beneath it, so the walk is unchanged except at its last step. */ export declare function loadProjectConfig(startDir: string, home?: string): Promise; export declare function loadConfig(startDir: string): Promise; //# sourceMappingURL=config.d.ts.map