/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { MCPServerConfig, BugCommandSettings, TelemetrySettings, AuthType, ChatCompressionSettings } from '@vybestack/llxprt-code-core';
import { CustomTheme } from '../ui/themes/theme.js';
export interface SettingDefinition {
    type: 'boolean' | 'string' | 'number' | 'array' | 'object';
    label: string;
    category: string;
    requiresRestart: boolean;
    default: boolean | string | number | string[] | object | undefined;
    description?: string;
    parentKey?: string;
    childKey?: string;
    key?: string;
    properties?: SettingsSchema;
    showInDialog?: boolean;
}
export interface SettingsSchema {
    [key: string]: SettingDefinition;
}
export type MemoryImportFormat = 'tree' | 'flat';
export type DnsResolutionOrder = 'ipv4first' | 'verbatim';
/**
 * The canonical schema for all settings.
 * The structure of this object defines the structure of the `Settings` type.
 * `as const` is crucial for TypeScript to infer the most specific types possible.
 */
export declare const SETTINGS_SCHEMA: {
    readonly theme: {
        readonly type: "string";
        readonly label: "Theme";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: string | undefined;
        readonly description: "The color theme for the UI.";
        readonly showInDialog: false;
    };
    readonly customThemes: {
        readonly type: "object";
        readonly label: "Custom Themes";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: Record<string, CustomTheme>;
        readonly description: "Custom theme definitions.";
        readonly showInDialog: false;
    };
    readonly hideWindowTitle: {
        readonly type: "boolean";
        readonly label: "Hide Window Title";
        readonly category: "UI";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Hide the window title bar";
        readonly showInDialog: true;
    };
    readonly hideTips: {
        readonly type: "boolean";
        readonly label: "Hide Tips";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide helpful tips in the UI";
        readonly showInDialog: true;
    };
    readonly hideBanner: {
        readonly type: "boolean";
        readonly label: "Hide Banner";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the application banner";
        readonly showInDialog: true;
    };
    readonly hideFooter: {
        readonly type: "boolean";
        readonly label: "Hide Footer";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the footer from the UI";
        readonly showInDialog: true;
    };
    readonly hideContextSummary: {
        readonly type: "boolean";
        readonly label: "Hide Context Summary";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the context summary (LLXPRT.md, MCP servers) above the input.";
        readonly showInDialog: true;
    };
    readonly showTodoPanel: {
        readonly type: "boolean";
        readonly label: "Show Todo Panel";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: true;
        readonly description: "Display the interactive Todo panel. Disable to keep todos in the scrollback view instead.";
        readonly showInDialog: true;
    };
    readonly showMemoryUsage: {
        readonly type: "boolean";
        readonly label: "Show Memory Usage";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Display memory usage information in the UI";
        readonly showInDialog: true;
    };
    readonly customWittyPhrases: {
        readonly type: "array";
        readonly label: "Custom Witty Phrases";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: string[];
        readonly description: "Custom witty phrases to display during loading.";
        readonly showInDialog: false;
    };
    readonly usageStatisticsEnabled: {
        readonly type: "boolean";
        readonly label: "Enable Usage Statistics";
        readonly category: "General";
        readonly requiresRestart: true;
        readonly default: true;
        readonly description: "Enable collection of usage statistics";
        readonly showInDialog: false;
    };
    readonly autoConfigureMaxOldSpaceSize: {
        readonly type: "boolean";
        readonly label: "Auto Configure Max Old Space Size";
        readonly category: "General";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Automatically configure Node.js memory limits";
        readonly showInDialog: true;
    };
    readonly preferredEditor: {
        readonly type: "string";
        readonly label: "Preferred Editor";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: string | undefined;
        readonly description: "The preferred editor to open files in.";
        readonly showInDialog: false;
    };
    readonly maxSessionTurns: {
        readonly type: "number";
        readonly label: "Max Session Turns";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: -1;
        readonly description: "Maximum number of user/model/tool turns to keep in a session. -1 means unlimited.";
        readonly showInDialog: true;
    };
    readonly maxTurnsPerPrompt: {
        readonly type: "number";
        readonly label: "Max Turns Per Prompt";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: 100;
        readonly description: "Maximum number of turns allowed per prompt before stopping to prevent loops. Set to -1 for unlimited.";
        readonly showInDialog: true;
    };
    readonly memoryImportFormat: {
        readonly type: "string";
        readonly label: "Memory Import Format";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: MemoryImportFormat | undefined;
        readonly description: "The format to use when importing memory.";
        readonly showInDialog: false;
    };
    readonly memoryDiscoveryMaxDirs: {
        readonly type: "number";
        readonly label: "Memory Discovery Max Dirs";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: 200;
        readonly description: "Maximum number of directories to search for memory.";
        readonly showInDialog: true;
    };
    readonly contextFileName: {
        readonly type: "object";
        readonly label: "Context File Name";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: string | string[] | undefined;
        readonly description: "The name of the context file.";
        readonly showInDialog: false;
    };
    readonly vimMode: {
        readonly type: "boolean";
        readonly label: "Vim Mode";
        readonly category: "Mode";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Enable Vim keybindings";
        readonly showInDialog: true;
    };
    readonly ideMode: {
        readonly type: "boolean";
        readonly label: "IDE Mode";
        readonly category: "Mode";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Enable IDE integration mode";
        readonly showInDialog: true;
    };
    readonly accessibility: {
        readonly type: "object";
        readonly label: "Accessibility";
        readonly category: "Accessibility";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Accessibility settings.";
        readonly showInDialog: false;
        readonly properties: {
            readonly disableLoadingPhrases: {
                readonly type: "boolean";
                readonly label: "Disable Loading Phrases";
                readonly category: "Accessibility";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Disable loading phrases for accessibility";
                readonly showInDialog: true;
            };
            readonly screenReader: {
                readonly type: "boolean";
                readonly label: "Screen Reader Mode";
                readonly category: "Accessibility";
                readonly requiresRestart: true;
                readonly default: boolean | undefined;
                readonly description: "Render output in plain-text to be more screen reader accessible";
                readonly showInDialog: true;
            };
        };
    };
    readonly checkpointing: {
        readonly type: "object";
        readonly label: "Checkpointing";
        readonly category: "Checkpointing";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Session checkpointing settings.";
        readonly showInDialog: false;
        readonly properties: {
            readonly enabled: {
                readonly type: "boolean";
                readonly label: "Enable Checkpointing";
                readonly category: "Checkpointing";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Enable session checkpointing for recovery";
                readonly showInDialog: false;
            };
        };
    };
    readonly emojifilter: {
        readonly type: "string";
        readonly label: "Emoji Filter";
        readonly category: "Content Filtering";
        readonly requiresRestart: false;
        readonly default: "allowed" | "auto" | "warn" | "error";
        readonly description: "Filter emojis from AI-generated content and file operations. Options: allowed (no filtering), auto (silent filtering), warn (filter with warnings to AI), error (block operations with emojis).";
        readonly showInDialog: true;
    };
    readonly fileFiltering: {
        readonly type: "object";
        readonly label: "File Filtering";
        readonly category: "File Filtering";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Settings for git-aware file filtering.";
        readonly showInDialog: false;
        readonly properties: {
            readonly respectGitIgnore: {
                readonly type: "boolean";
                readonly label: "Respect .gitignore";
                readonly category: "File Filtering";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Respect .gitignore files when searching";
                readonly showInDialog: true;
            };
            readonly respectLlxprtIgnore: {
                readonly type: "boolean";
                readonly label: "Respect .llxprtignore";
                readonly category: "File Filtering";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Respect .llxprtignore files when searching";
                readonly showInDialog: true;
            };
            readonly enableRecursiveFileSearch: {
                readonly type: "boolean";
                readonly label: "Enable Recursive File Search";
                readonly category: "File Filtering";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Enable recursive file search functionality";
                readonly showInDialog: true;
            };
            readonly disableFuzzySearch: {
                readonly type: "boolean";
                readonly label: "Disable Fuzzy Search";
                readonly category: "File Filtering";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Disable fuzzy search when searching for files.";
                readonly showInDialog: true;
            };
        };
    };
    readonly disableAutoUpdate: {
        readonly type: "boolean";
        readonly label: "Disable Auto Update";
        readonly category: "Updates";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Disable automatic updates";
        readonly showInDialog: true;
    };
    readonly shouldUseNodePtyShell: {
        readonly type: "boolean";
        readonly label: "Use node-pty for Shell Execution";
        readonly category: "Shell";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Use node-pty for shell command execution. Fallback to child_process still applies.";
        readonly showInDialog: true;
    };
    readonly selectedAuthType: {
        readonly type: "string";
        readonly label: "Selected Auth Type";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: AuthType;
        readonly description: "The currently selected authentication type.";
        readonly showInDialog: false;
    };
    readonly useExternalAuth: {
        readonly type: "boolean";
        readonly label: "Use External Auth";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: boolean | undefined;
        readonly description: "Whether to use an external authentication flow.";
        readonly showInDialog: false;
    };
    readonly sandbox: {
        readonly type: "object";
        readonly label: "Sandbox";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: boolean | string | undefined;
        readonly description: "Sandbox execution environment (can be a boolean or a path string).";
        readonly showInDialog: false;
    };
    readonly coreTools: {
        readonly type: "array";
        readonly label: "Core Tools";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "Paths to core tool definitions.";
        readonly showInDialog: false;
    };
    readonly allowedTools: {
        readonly type: "array";
        readonly label: "Allowed Tools";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "A list of tool names that will bypass the confirmation dialog.";
        readonly showInDialog: false;
    };
    readonly excludeTools: {
        readonly type: "array";
        readonly label: "Exclude Tools";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "Tool names to exclude from discovery.";
        readonly showInDialog: false;
    };
    readonly toolDiscoveryCommand: {
        readonly type: "string";
        readonly label: "Tool Discovery Command";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string | undefined;
        readonly description: "Command to run for tool discovery.";
        readonly showInDialog: false;
    };
    readonly toolCallCommand: {
        readonly type: "string";
        readonly label: "Tool Call Command";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string | undefined;
        readonly description: "Command to run for tool calls.";
        readonly showInDialog: false;
    };
    readonly mcpServerCommand: {
        readonly type: "string";
        readonly label: "MCP Server Command";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string | undefined;
        readonly description: "Command to start an MCP server.";
        readonly showInDialog: false;
    };
    readonly mcpServers: {
        readonly type: "object";
        readonly label: "MCP Servers";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: Record<string, MCPServerConfig>;
        readonly description: "Configuration for MCP servers.";
        readonly showInDialog: false;
    };
    readonly hideCWD: {
        readonly type: "boolean";
        readonly label: "Hide CWD";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the current working directory path in the footer.";
        readonly showInDialog: true;
    };
    readonly hideSandboxStatus: {
        readonly type: "boolean";
        readonly label: "Hide Sandbox Status";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the sandbox status indicator in the footer.";
        readonly showInDialog: true;
    };
    readonly hideModelInfo: {
        readonly type: "boolean";
        readonly label: "Hide Model Info";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Hide the model name and context usage in the footer.";
        readonly showInDialog: true;
    };
    readonly allowMCPServers: {
        readonly type: "array";
        readonly label: "Allow MCP Servers";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "A whitelist of MCP servers to allow.";
        readonly showInDialog: false;
    };
    readonly excludeMCPServers: {
        readonly type: "array";
        readonly label: "Exclude MCP Servers";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "A blacklist of MCP servers to exclude.";
        readonly showInDialog: false;
    };
    readonly telemetry: {
        readonly type: "object";
        readonly label: "Telemetry";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: TelemetrySettings | undefined;
        readonly description: "Telemetry configuration.";
        readonly showInDialog: false;
    };
    readonly bugCommand: {
        readonly type: "object";
        readonly label: "Bug Command";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: BugCommandSettings | undefined;
        readonly description: "Configuration for the bug report command.";
        readonly showInDialog: false;
    };
    readonly summarizeToolOutput: {
        readonly type: "object";
        readonly label: "Summarize Tool Output";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: Record<string, {
            tokenBudget?: number;
        }> | undefined;
        readonly description: "Settings for summarizing tool output.";
        readonly showInDialog: false;
    };
    readonly dnsResolutionOrder: {
        readonly type: "string";
        readonly label: "DNS Resolution Order";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: DnsResolutionOrder | undefined;
        readonly description: "The DNS resolution order.";
        readonly showInDialog: false;
    };
    readonly tools: {
        readonly type: "object";
        readonly label: "Tools";
        readonly category: "Tools";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Settings for built-in and custom tools.";
        readonly showInDialog: false;
        readonly properties: {
            readonly sandbox: {
                readonly type: "object";
                readonly label: "Sandbox";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: boolean | string | undefined;
                readonly description: "Sandbox execution environment (can be a boolean or a path string).";
                readonly showInDialog: false;
            };
            readonly usePty: {
                readonly type: "boolean";
                readonly label: "Use node-pty for Shell Execution";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Use node-pty for shell command execution. Fallback to child_process still applies.";
                readonly showInDialog: true;
            };
            readonly autoAccept: {
                readonly type: "boolean";
                readonly label: "Auto Accept";
                readonly category: "Tools";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Automatically accept and execute tool calls that are considered safe (e.g., read-only operations).";
                readonly showInDialog: true;
            };
            readonly core: {
                readonly type: "array";
                readonly label: "Core Tools";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: string[] | undefined;
                readonly description: "Paths to core tool definitions.";
                readonly showInDialog: false;
            };
            readonly allowed: {
                readonly type: "array";
                readonly label: "Allowed Tools";
                readonly category: "Advanced";
                readonly requiresRestart: true;
                readonly default: string[] | undefined;
                readonly description: "A list of tool names that will bypass the confirmation dialog.";
                readonly showInDialog: false;
            };
            readonly exclude: {
                readonly type: "array";
                readonly label: "Exclude Tools";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: string[] | undefined;
                readonly description: "Tool names to exclude from discovery.";
                readonly showInDialog: false;
            };
            readonly discoveryCommand: {
                readonly type: "string";
                readonly label: "Tool Discovery Command";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: string | undefined;
                readonly description: "Command to run for tool discovery.";
                readonly showInDialog: false;
            };
            readonly callCommand: {
                readonly type: "string";
                readonly label: "Tool Call Command";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: string | undefined;
                readonly description: "Command to run for tool calls.";
                readonly showInDialog: false;
            };
            readonly useRipgrep: {
                readonly type: "boolean";
                readonly label: "Use Ripgrep";
                readonly category: "Tools";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance.";
                readonly showInDialog: true;
            };
        };
    };
    readonly mcp: {
        readonly type: "object";
        readonly label: "MCP";
        readonly category: "MCP";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Settings for Model Context Protocol (MCP) servers.";
        readonly showInDialog: false;
        readonly properties: {
            readonly serverCommand: {
                readonly type: "string";
                readonly label: "MCP Server Command";
                readonly category: "MCP";
                readonly requiresRestart: true;
                readonly default: string | undefined;
                readonly description: "Command to start an MCP server.";
                readonly showInDialog: false;
            };
            readonly allowed: {
                readonly type: "array";
                readonly label: "Allow MCP Servers";
                readonly category: "MCP";
                readonly requiresRestart: true;
                readonly default: string[] | undefined;
                readonly description: "A list of MCP servers to allow.";
                readonly showInDialog: false;
            };
            readonly excluded: {
                readonly type: "array";
                readonly label: "Exclude MCP Servers";
                readonly category: "MCP";
                readonly requiresRestart: true;
                readonly default: string[] | undefined;
                readonly description: "A list of MCP servers to exclude.";
                readonly showInDialog: false;
            };
        };
    };
    readonly useSmartEdit: {
        readonly type: "boolean";
        readonly label: "Use Smart Edit";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Enable the smart-edit tool instead of the replace tool.";
        readonly showInDialog: false;
    };
    readonly security: {
        readonly type: "object";
        readonly label: "Security";
        readonly category: "Security";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Security-related settings.";
        readonly showInDialog: false;
        readonly properties: {
            readonly folderTrust: {
                readonly type: "object";
                readonly label: "Folder Trust";
                readonly category: "Security";
                readonly requiresRestart: true;
                readonly default: {};
                readonly description: "Settings for folder trust.";
                readonly showInDialog: false;
                readonly properties: {
                    readonly enabled: {
                        readonly type: "boolean";
                        readonly label: "Folder Trust";
                        readonly category: "Security";
                        readonly requiresRestart: true;
                        readonly default: false;
                        readonly description: "Setting to track whether Folder trust is enabled.";
                        readonly showInDialog: true;
                    };
                };
            };
            readonly auth: {
                readonly type: "object";
                readonly label: "Authentication";
                readonly category: "Security";
                readonly requiresRestart: true;
                readonly default: {};
                readonly description: "Authentication settings.";
                readonly showInDialog: false;
                readonly properties: {
                    readonly selectedType: {
                        readonly type: "string";
                        readonly label: "Selected Auth Type";
                        readonly category: "Security";
                        readonly requiresRestart: true;
                        readonly default: AuthType | undefined;
                        readonly description: "The currently selected authentication type.";
                        readonly showInDialog: false;
                    };
                    readonly useExternal: {
                        readonly type: "boolean";
                        readonly label: "Use External Auth";
                        readonly category: "Security";
                        readonly requiresRestart: true;
                        readonly default: boolean | undefined;
                        readonly description: "Whether to use an external authentication flow.";
                        readonly showInDialog: false;
                    };
                };
            };
        };
    };
    readonly excludedProjectEnvVars: {
        readonly type: "array";
        readonly label: "Excluded Project Environment Variables";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: string[];
        readonly description: "Environment variables to exclude from project context.";
        readonly showInDialog: false;
    };
    readonly disableUpdateNag: {
        readonly type: "boolean";
        readonly label: "Disable Update Nag";
        readonly category: "Updates";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Disable update notification prompts.";
        readonly showInDialog: false;
    };
    readonly includeDirectories: {
        readonly type: "array";
        readonly label: "Include Directories";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: string[];
        readonly description: "Additional directories to include in the workspace context. Missing directories will be skipped with a warning.";
        readonly showInDialog: false;
    };
    readonly loadMemoryFromIncludeDirectories: {
        readonly type: "boolean";
        readonly label: "Load Memory From Include Directories";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Whether to load memory files from include directories.";
        readonly showInDialog: true;
    };
    readonly model: {
        readonly type: "string";
        readonly label: "Model";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: string | undefined;
        readonly description: "The Gemini model to use for conversations.";
        readonly showInDialog: false;
    };
    readonly hasSeenIdeIntegrationNudge: {
        readonly type: "boolean";
        readonly label: "Has Seen IDE Integration Nudge";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Whether the user has seen the IDE integration nudge.";
        readonly showInDialog: false;
    };
    readonly folderTrustFeature: {
        readonly type: "boolean";
        readonly label: "Folder Trust Feature";
        readonly category: "General";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Enable folder trust feature for enhanced security.";
        readonly showInDialog: true;
    };
    readonly folderTrust: {
        readonly type: "boolean";
        readonly label: "Folder Trust";
        readonly category: "General";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Setting to track whether Folder trust is enabled.";
        readonly showInDialog: true;
    };
    readonly chatCompression: {
        readonly type: "object";
        readonly label: "Chat Compression";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: ChatCompressionSettings | undefined;
        readonly description: "Chat compression settings.";
        readonly showInDialog: false;
    };
    readonly showLineNumbers: {
        readonly type: "boolean";
        readonly label: "Show Line Numbers";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Show line numbers in the chat.";
        readonly showInDialog: true;
    };
    readonly defaultProfile: {
        readonly type: "string";
        readonly label: "Default Profile";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: string | undefined;
        readonly description: "Default provider profile to use.";
        readonly showInDialog: false;
    };
    readonly providerApiKeys: {
        readonly type: "object";
        readonly label: "Provider API Keys";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: Record<string, string>;
        readonly description: "API keys for different providers.";
        readonly showInDialog: false;
    };
    readonly providerBaseUrls: {
        readonly type: "object";
        readonly label: "Provider Base URLs";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: Record<string, string>;
        readonly description: "Base URLs for different providers.";
        readonly showInDialog: false;
    };
    readonly providerToolFormatOverrides: {
        readonly type: "object";
        readonly label: "Provider Tool Format Overrides";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: Record<string, string>;
        readonly description: "Tool format overrides for different providers.";
        readonly showInDialog: false;
    };
    readonly providerKeyfiles: {
        readonly type: "object";
        readonly label: "Provider Keyfiles";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: Record<string, string>;
        readonly description: "Keyfile paths for different providers.";
        readonly showInDialog: false;
    };
    readonly extensionManagement: {
        readonly type: "boolean";
        readonly label: "Extension Management";
        readonly category: "Feature Flag";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Enable extension management features.";
        readonly showInDialog: false;
    };
    readonly extensions: {
        readonly type: "object";
        readonly label: "Extensions";
        readonly category: "Extensions";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Settings for extensions.";
        readonly showInDialog: false;
        readonly properties: {
            readonly disabled: {
                readonly type: "array";
                readonly label: "Disabled Extensions";
                readonly category: "Extensions";
                readonly requiresRestart: true;
                readonly default: string[];
                readonly description: "List of disabled extensions.";
                readonly showInDialog: false;
            };
            readonly workspacesWithMigrationNudge: {
                readonly type: "array";
                readonly label: "Workspaces with Migration Nudge";
                readonly category: "Extensions";
                readonly requiresRestart: false;
                readonly default: string[];
                readonly description: "List of workspaces for which the migration nudge has been shown.";
                readonly showInDialog: false;
            };
        };
    };
    readonly enableTextToolCallParsing: {
        readonly type: "boolean";
        readonly label: "Enable Text Tool Call Parsing";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Enable parsing of tool calls from text responses.";
        readonly showInDialog: false;
    };
    readonly textToolCallModels: {
        readonly type: "array";
        readonly label: "Text Tool Call Models";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: string[];
        readonly description: "Models that support text-based tool call parsing.";
        readonly showInDialog: false;
    };
    readonly openaiResponsesEnabled: {
        readonly type: "boolean";
        readonly label: "OpenAI Responses Enabled";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Enable OpenAI Responses API compatibility.";
        readonly showInDialog: false;
    };
    readonly shellReplacement: {
        readonly type: "boolean";
        readonly label: "Shell Replacement";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Allow command substitution in shell commands.";
        readonly showInDialog: false;
    };
    readonly oauthEnabledProviders: {
        readonly type: "object";
        readonly label: "OAuth Enabled Providers";
        readonly category: "Provider";
        readonly requiresRestart: true;
        readonly default: Record<string, boolean>;
        readonly description: "OAuth enablement configuration per provider.";
        readonly showInDialog: false;
    };
    readonly useRipgrep: {
        readonly type: "boolean";
        readonly label: "Use Ripgrep";
        readonly category: "Tools";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance.";
        readonly showInDialog: true;
    };
    readonly enablePromptCompletion: {
        readonly type: "boolean";
        readonly label: "Enable Prompt Completion";
        readonly category: "General";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Enable AI-powered prompt completion suggestions while typing.";
        readonly showInDialog: true;
    };
    readonly debugKeystrokeLogging: {
        readonly type: "boolean";
        readonly label: "Debug Keystroke Logging";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Enable debug logging of keystrokes to the console.";
        readonly showInDialog: true;
    };
};
type InferSettings<T extends SettingsSchema> = {
    -readonly [K in keyof T]?: T[K] extends {
        properties: SettingsSchema;
    } ? InferSettings<T[K]['properties']> : T[K]['default'] extends boolean ? boolean : T[K]['default'];
};
export type Settings = InferSettings<typeof SETTINGS_SCHEMA>;
export interface FooterSettings {
    hideCWD?: boolean;
    hideSandboxStatus?: boolean;
    hideModelInfo?: boolean;
}
export {};
