import type { CronTaskDefinition as CronTaskConfig } from "./engine/cron/cronTypes.js"; export type PluginInstanceSettings = { instanceId: string; pluginId: string; enabled?: boolean; settings?: Record; }; export type InferenceProviderSettings = { id: string; model?: string; options?: Record; }; export type ProviderImageSettings = { enabled?: boolean; model?: string; size?: string; quality?: "standard" | "hd"; endpoint?: string; apiKeyHeader?: string; apiKeyPrefix?: string; }; export type ProviderSettings = { id: string; enabled?: boolean; model?: string; options?: Record; image?: ProviderImageSettings; }; export type ModelRoleKey = "user" | "memory" | "memorySearch" | "subagent" | "heartbeat"; /** * Per-role model overrides. Each value uses "/" format. * When a role has no entry, the provider's default model is used. */ export type ModelRoleConfig = Partial>; export type AgentSettings = { emergencyContextLimit?: number; }; export type SecuritySettings = { appReviewerEnabled?: boolean; }; export type DockerSettings = { enabled?: boolean; image?: string; tag?: string; socketPath?: string; runtime?: string; }; export type ResolvedDockerSettings = { enabled: boolean; image: string; tag: string; socketPath?: string; runtime?: string; }; export type FeaturesConfig = { say?: boolean; rlm?: boolean; noTools?: boolean; }; export type ResolvedFeaturesConfig = Required; export type ResolvedSettingsConfig = Omit & { agents: Required; security: Required; features: ResolvedFeaturesConfig; docker: ResolvedDockerSettings; }; export type SettingsConfig = { features?: FeaturesConfig; docker?: DockerSettings; engine?: { socketPath?: string; dataDir?: string; dbPath?: string; }; assistant?: AssistantSettings; agents?: AgentSettings; security?: SecuritySettings; plugins?: PluginInstanceSettings[]; providers?: ProviderSettings[]; inference?: { providers?: InferenceProviderSettings[]; }; cron?: { tasks?: CronTaskConfig[]; }; models?: ModelRoleConfig; memory?: { enabled?: boolean; maxEntries?: number; }; }; export type AssistantSettings = { systemPrompt?: string; }; export declare const DEFAULT_SETTINGS_PATH: string; export declare function readSettingsFile(filePath?: string): Promise; export declare function writeSettingsFile(filePath: string, settings: SettingsConfig): Promise; export declare function updateSettingsFile(filePath: string, updater: (settings: SettingsConfig) => SettingsConfig): Promise; export declare function listPlugins(settings: SettingsConfig): PluginInstanceSettings[]; export declare function listEnabledPlugins(settings: SettingsConfig): PluginInstanceSettings[]; export declare function upsertPlugin(plugins: PluginInstanceSettings[] | undefined, entry: PluginInstanceSettings): PluginInstanceSettings[]; export type NextPluginInstanceIdOptions = { exclusive?: boolean; }; export declare function nextPluginInstanceId(pluginId: string, plugins: PluginInstanceSettings[] | undefined, options?: NextPluginInstanceIdOptions): string; export declare function removePlugin(plugins: PluginInstanceSettings[] | undefined, instanceId: string): PluginInstanceSettings[]; export declare function listProviders(settings: SettingsConfig): ProviderSettings[]; export declare function listActiveProviders(settings: SettingsConfig): ProviderSettings[]; export declare function upsertProviderSettings(providers: ProviderSettings[] | undefined, entry: ProviderSettings): ProviderSettings[]; export declare function removeProviderSettings(providers: ProviderSettings[] | undefined, id: string): ProviderSettings[]; //# sourceMappingURL=settings.d.ts.map