export interface InstallConfig { apiKey: string; installationId: string; endpointUrl: string; tools: string[]; /** Control plane URL (the SaaS dashboard). The data plane polls this for * config, sends telemetry uplink, and syncs spend. Copied from the * installation/generate screen in the dashboard. */ controlPlaneUrl?: string; /** 'systray' (default, full-featured) | 'endpoint' (headless proxy, no system tray) */ mode?: string; /** When true, enables Anthropic passthrough (forward client's own Anthropic * credential to api.anthropic.com instead of using a keystore key). */ anthropicPassthrough?: boolean; } /** * The Monk Router app directory: ~/.monk-router/ on all platforms. */ export declare function appDir(homeDir?: string): string; /** * Path to config.json inside the app directory. */ export declare function configPath(homeDir?: string): string; /** * Path to the bin directory where the downloaded binary is extracted. */ export declare function binDir(homeDir?: string): string; /** * Path to the embedding model directory. The Go router expects the Jina * ONNX model + tokenizer files here. The installer downloads the model * archive from the GitHub release and extracts it to this path. */ export declare function modelDir(homeDir?: string): string; /** * Write config.json with the installer-provided fields. The installer * manages only its own fields (router_api_key, installation_id, * endpoint_url, control_plane_url, tools, mode, anthropic_passthrough); * all other fields (port, paths, routing params, presets, etc.) are * filled in by the Go binary on first launch and may be changed at * runtime via the tray UI. * * If a config.json already exists, it is **merged** — the installer updates * its own fields but preserves any runtime-set fields (e.g. * anthropic_passthrough toggled via the tray, mode, preset, alpha). This * prevents re-running the installer from silently wiping user preferences. */ export declare function writeConfig(cfg: InstallConfig, homeDir?: string): string; /** * Read config.json if it exists, returning the parsed installer fields. * Returns null if the file does not exist (first install). */ export declare function readConfig(homeDir?: string): InstallConfig | null;