/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { MCPServerConfig, BugCommandSettings, TelemetrySettings, ChatCompressionSettings, HookDefinition, HookEventName } from '@vybestack/llxprt-code-core';
import { CustomTheme } from '../ui/themes/theme.js';
import type { SessionRetentionSettings } from './settings.js';
export type SettingsType = 'boolean' | 'string' | 'number' | 'array' | 'object' | 'enum';
export type SettingsValue = boolean | string | number | string[] | object | undefined;
/**
 * Setting datatypes that "toggle" through a fixed list of options
 * (e.g. an enum or true/false) rather than allowing for free form input
 * (like a number or string).
 */
export declare const TOGGLE_TYPES: ReadonlySet<SettingsType | undefined>;
export interface SettingEnumOption {
    value: string | number;
    label: string;
}
export interface SettingCollectionDefinition {
    type: SettingsType;
    description?: string;
    properties?: SettingsSchema;
    /** Enum type options  */
    options?: readonly SettingEnumOption[];
    /**
     * Optional reference identifier for generators that emit a `$ref`.
     * For example, a JSON schema generator can use this to point to a shared definition.
     */
    ref?: string;
}
export declare enum MergeStrategy {
    REPLACE = "replace",
    CONCAT = "concat",
    UNION = "union",
    SHALLOW_MERGE = "shallow_merge"
}
export interface SettingDefinition {
    type: SettingsType;
    label: string;
    category: string;
    requiresRestart: boolean;
    default: SettingsValue;
    description?: string;
    parentKey?: string;
    childKey?: string;
    key?: string;
    properties?: SettingsSchema;
    showInDialog?: boolean;
    mergeStrategy?: MergeStrategy;
    /** Enum type options  */
    options?: readonly SettingEnumOption[];
    /**
     * For collection types (e.g. arrays), describes the shape of each item.
     */
    items?: SettingCollectionDefinition;
    /**
     * For map-like objects without explicit `properties`, describes the shape of the values.
     */
    additionalProperties?: SettingCollectionDefinition;
    /**
     * Optional reference identifier for generators that emit a `$ref`.
     */
    ref?: string;
    subSettings?: SettingsSchema;
    /**
     * For number types, the minimum allowed value.
     */
    minimum?: number;
    /**
     * For number types, the maximum allowed value.
     */
    maximum?: number;
}
export interface SettingsSchema {
    [key: string]: SettingDefinition;
}
export type MemoryImportFormat = 'tree' | 'flat';
export type DnsResolutionOrder = 'ipv4first' | 'verbatim';
export type ToolCallProcessingMode = 'legacy' | 'pipeline';
export type ToolEnabledState = 'enabled' | 'disabled';
/**
 * 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.
 *
 * IMPORTANT: When adding a new setting with `showInDialog: true`, ensure it is
 * also documented in docs/cli/configuration.md with a complete description,
 * type, default value, and example.
 */
export declare const SETTINGS_SCHEMA: {
    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: false;
                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 lsp: {
        readonly type: "boolean";
        readonly label: "Experimental LSP Servers";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: false;
        readonly ref: "BooleanOrLspConfig";
        readonly description: "Enable experimental Language Server Protocol integration for real-time type-error diagnostics after file edits.";
        readonly showInDialog: true;
    };
    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: "Enable Interactive Shell (node-pty)";
        readonly category: "Shell";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Allow fully interactive shell commands (vim, git rebase -i, etc.) by running tools through node-pty. Falls back to child_process when disabled.";
        readonly showInDialog: true;
    };
    readonly allowPtyThemeOverride: {
        readonly type: "boolean";
        readonly label: "Allow PTY to Override Theme";
        readonly category: "Shell";
        readonly requiresRestart: true;
        readonly default: false;
        readonly description: "Allow ANSI colors from PTY output to override the UI theme. When disabled, PTY output uses the current theme colors.";
        readonly showInDialog: true;
    };
    readonly ptyScrollbackLimit: {
        readonly type: "number";
        readonly label: "PTY Scrollback Limit";
        readonly category: "Shell";
        readonly requiresRestart: true;
        readonly default: 600000;
        readonly description: "Maximum number of lines to keep in the PTY scrollback buffer for interactive shell output.";
        readonly showInDialog: true;
    };
    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: "string";
        readonly label: "Sandbox";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: boolean | string | undefined;
        readonly ref: "BooleanOrString";
        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 defaultDisabledTools: {
        readonly type: "array";
        readonly label: "Default Disabled Tools";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: string[] | undefined;
        readonly description: "Tool names disabled by default. Users can re-enable them with /tools enable.";
        readonly showInDialog: false;
    };
    readonly coreToolSettings: {
        readonly type: "object";
        readonly label: "Tool Management";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: Record<string, boolean>;
        readonly description: "Manage core tool availability";
        readonly showInDialog: true;
        readonly subSettings: {};
    };
    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 toolCallProcessingMode: {
        readonly type: "enum";
        readonly label: "Tool Call Processing Mode";
        readonly category: "Advanced";
        readonly requiresRestart: true;
        readonly default: ToolCallProcessingMode;
        readonly description: "Mode for processing tool calls. Pipeline mode is optimized, legacy mode uses older implementation.";
        readonly showInDialog: true;
        readonly options: readonly [{
            readonly value: "legacy";
            readonly label: "Legacy";
        }, {
            readonly value: "pipeline";
            readonly label: "Pipeline";
        }];
    };
    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 mergeStrategy: MergeStrategy.SHALLOW_MERGE;
        readonly additionalProperties: {
            readonly type: "object";
            readonly ref: "MCPServerConfig";
        };
    };
    readonly sessionRetention: {
        readonly type: "object";
        readonly label: "Session Retention";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: SessionRetentionSettings | undefined;
        readonly description: "Settings for automatic session cleanup.";
    };
    readonly output: {
        readonly type: "object";
        readonly label: "Output";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: {};
        readonly description: "Settings for the CLI output.";
        readonly showInDialog: false;
        readonly properties: {
            readonly format: {
                readonly type: "enum";
                readonly label: "Output Format";
                readonly category: "General";
                readonly requiresRestart: false;
                readonly default: "text";
                readonly description: "The format of the CLI output.";
                readonly showInDialog: true;
                readonly options: readonly [{
                    readonly value: "text";
                    readonly label: "Text";
                }, {
                    readonly value: "json";
                    readonly label: "JSON";
                }];
            };
        };
    };
    readonly ui: {
        readonly type: "object";
        readonly label: "UI";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: {};
        readonly description: "User interface settings.";
        readonly showInDialog: false;
        readonly properties: {
            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 additionalProperties: {
                    readonly type: "object";
                    readonly ref: "CustomTheme";
                };
            };
            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 showStatusInTitle: {
                readonly type: "boolean";
                readonly label: "Show Status in Title";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Show Gemini CLI status and thoughts in the terminal window title";
                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 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 footer: {
                readonly type: "object";
                readonly label: "Footer";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: {};
                readonly description: "Settings for the footer.";
                readonly showInDialog: false;
                readonly properties: {
                    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 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 useAlternateBuffer: {
                readonly type: "boolean";
                readonly label: "Use Alternate Screen Buffer";
                readonly category: "UI";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Use an alternate screen buffer for the UI, preserving shell history.";
                readonly showInDialog: true;
            };
            readonly incrementalRendering: {
                readonly type: "boolean";
                readonly label: "Incremental Rendering";
                readonly category: "UI";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Enable incremental rendering for the UI. Only supported when useAlternateBuffer is enabled.";
                readonly showInDialog: true;
            };
            readonly enableMouseEvents: {
                readonly type: "boolean";
                readonly label: "Enable Mouse Events";
                readonly category: "UI";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Enable mouse event tracking for in-app scrolling. Disables terminal text selection and clickable links while active.";
                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 showLineNumbers: {
                readonly type: "boolean";
                readonly label: "Show Line Numbers";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Show line numbers in the chat.";
                readonly showInDialog: true;
            };
            readonly showCitations: {
                readonly type: "boolean";
                readonly label: "Show Citations";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Show citations for generated text in the chat.";
                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 wittyPhraseStyle: {
                readonly type: "enum";
                readonly label: "Witty Phrase Style";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: "default";
                readonly description: "Choose which collection of witty phrases to display during loading.";
                readonly showInDialog: true;
                readonly options: ({
                    value: "default";
                    label: string;
                } | {
                    value: "llxprt";
                    label: string;
                } | {
                    value: "gemini-cli";
                    label: string;
                } | {
                    value: "whimsical";
                    label: string;
                } | {
                    value: "custom";
                    label: string;
                })[];
            };
            readonly vimMode: {
                readonly type: "boolean";
                readonly label: "Vim Mode";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Enable Vim keybindings in the input field.";
                readonly showInDialog: true;
            };
            readonly ideMode: {
                readonly type: "boolean";
                readonly label: "IDE Mode";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Enable IDE integration mode.";
                readonly showInDialog: true;
            };
            readonly preferredEditor: {
                readonly type: "string";
                readonly label: "Preferred Editor";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: string | undefined;
                readonly description: "The preferred code editor for opening files.";
                readonly showInDialog: false;
            };
            readonly autoConfigureMaxOldSpaceSize: {
                readonly type: "boolean";
                readonly label: "Auto Configure Max Old Space Size";
                readonly category: "UI";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Automatically configure Node.js max old space size based on system memory.";
                readonly showInDialog: true;
            };
            readonly historyMaxItems: {
                readonly type: "number";
                readonly label: "History Max Items";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: 100;
                readonly description: "Maximum number of history items to keep.";
                readonly showInDialog: false;
            };
            readonly historyMaxBytes: {
                readonly type: "number";
                readonly label: "History Max Bytes";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: 1048576;
                readonly description: "Maximum size of history in bytes.";
                readonly showInDialog: false;
            };
            readonly memoryImportFormat: {
                readonly type: "string";
                readonly label: "Memory Import Format";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: MemoryImportFormat;
                readonly description: "Format for importing memory files (tree or flat).";
                readonly showInDialog: false;
            };
            readonly memoryDiscoveryMaxDirs: {
                readonly type: "number";
                readonly label: "Memory Discovery Max Dirs";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: number | undefined;
                readonly description: "Maximum number of directories to scan for memory files.";
                readonly showInDialog: false;
            };
            readonly memoryDiscoveryMaxDepth: {
                readonly type: "number";
                readonly label: "Memory Discovery Max Depth";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: number | undefined;
                readonly description: "Maximum directory depth for downward LLXPRT.md search from the current working directory. Does not affect upward traversal or global memory. When unset, searches all depths.";
                readonly showInDialog: true;
            };
            readonly contextFileName: {
                readonly type: "string";
                readonly label: "Context File Name";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: string | string[] | undefined;
                readonly ref: "StringOrStringArray";
                readonly description: "The name of the context file or files to load into memory. Accepts either a single string or an array of strings.";
                readonly showInDialog: false;
            };
            readonly usageStatisticsEnabled: {
                readonly type: "boolean";
                readonly label: "Usage Statistics Enabled";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: true;
                readonly description: "Enable anonymous usage statistics collection.";
                readonly showInDialog: false;
            };
            readonly maxSessionTurns: {
                readonly type: "number";
                readonly label: "Max Session Turns";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: -1;
                readonly description: "Maximum number of turns in a session (-1 for unlimited).";
                readonly showInDialog: false;
            };
            readonly showTodoPanel: {
                readonly type: "boolean";
                readonly label: "Show Todo Panel";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: true;
                readonly description: "Show the todo panel in the UI.";
                readonly showInDialog: true;
            };
            readonly useFullWidth: {
                readonly type: "boolean";
                readonly label: "Use Full Width";
                readonly category: "UI";
                readonly requiresRestart: false;
                readonly default: true;
                readonly description: "Use the entire width of the terminal for output.";
                readonly showInDialog: true;
            };
            readonly disableLoadingPhrases: {
                readonly type: "boolean";
                readonly label: "Disable Loading Phrases";
                readonly category: "UI";
                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: "UI";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Render output in plain-text to be more screen reader accessible.";
                readonly showInDialog: true;
            };
        };
    };
    readonly ide: {
        readonly type: "object";
        readonly label: "IDE";
        readonly category: "IDE";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "IDE integration settings.";
        readonly showInDialog: false;
        readonly properties: {};
    };
    readonly showStatusInTitle: {
        readonly type: "boolean";
        readonly label: "Show Status in Title";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: false;
        readonly description: "Show LLxprt status and thoughts in the terminal window title";
        readonly showInDialog: true;
    };
    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 ref: "TelemetrySettings";
    };
    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 ref: "BugCommandSettings";
    };
    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: string;
        readonly showInDialog: false;
        readonly additionalProperties: {
            readonly type: "object";
            readonly description: "Per-tool summarization settings with an optional tokenBudget.";
            readonly ref: "SummarizeToolOutputSettings";
        };
    };
    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: "string";
                readonly label: "Sandbox";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: boolean | string | undefined;
                readonly ref: "BooleanOrString";
                readonly description: string;
                readonly showInDialog: false;
            };
            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: boolean | undefined;
                readonly description: "Use ripgrep for file content search instead of the fallback implementation. When unset, ripgrep is auto-enabled if detected.";
                readonly showInDialog: true;
            };
            readonly enableToolOutputTruncation: {
                readonly type: "boolean";
                readonly label: "Enable Tool Output Truncation";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Enable truncation of large tool outputs.";
                readonly showInDialog: true;
            };
            readonly truncateToolOutputThreshold: {
                readonly type: "number";
                readonly label: "Tool Output Truncation Threshold";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: 4000000;
                readonly description: "Truncate tool output if it is larger than this many characters. Set to -1 to disable.";
                readonly showInDialog: true;
            };
            readonly truncateToolOutputLines: {
                readonly type: "number";
                readonly label: "Tool Output Truncation Lines";
                readonly category: "Tools";
                readonly requiresRestart: true;
                readonly default: 1000;
                readonly description: "The number of lines to keep when truncating tool output.";
                readonly showInDialog: true;
            };
            readonly policyPath: {
                readonly type: "string";
                readonly label: "Policy File Path";
                readonly category: "Tools";
                readonly requiresRestart: false;
                readonly default: string | undefined;
                readonly description: "Absolute path to a TOML policy file that augments the built-in policy rules.";
                readonly showInDialog: false;
            };
            readonly enableHooks: {
                readonly type: "boolean";
                readonly label: "Enable Hooks System";
                readonly category: "Advanced";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Enable the hooks system for intercepting and customizing LLxprt CLI behavior. When enabled, hooks configured in settings will execute at appropriate lifecycle events (BeforeTool, AfterTool, BeforeModel, etc.). Requires MessageBus integration.";
                readonly showInDialog: false;
            };
        };
    };
    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 subagents: {
        readonly type: "object";
        readonly label: "Subagents";
        readonly category: "Subagents";
        readonly requiresRestart: false;
        readonly default: {};
        readonly description: "Settings for subagent behavior.";
        readonly showInDialog: false;
        readonly properties: {
            readonly asyncEnabled: {
                readonly type: "boolean";
                readonly label: "Async Subagents Enabled";
                readonly category: "Subagents";
                readonly requiresRestart: false;
                readonly default: true;
                readonly description: "Globally allow background subagent runs. If off, async=true launches are blocked even if a profile enables them.";
                readonly showInDialog: true;
            };
            readonly maxAsync: {
                readonly type: "number";
                readonly label: "Maximum Async Tasks";
                readonly category: "Subagents";
                readonly requiresRestart: false;
                readonly default: 5;
                readonly minimum: -1;
                readonly description: "Maximum concurrent async tasks. Profile setting (task-max-async) can limit but not exceed this value. Use -1 for unlimited.";
                readonly showInDialog: true;
            };
        };
    };
    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 disableYoloMode: {
                readonly type: "boolean";
                readonly label: "Disable YOLO Mode";
                readonly category: "Security";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Disable YOLO mode, even if enabled by a flag.";
                readonly showInDialog: true;
            };
            readonly enablePermanentToolApproval: {
                readonly type: "boolean";
                readonly label: "Allow Permanent Tool Approval";
                readonly category: "Security";
                readonly requiresRestart: false;
                readonly default: false;
                readonly description: "Enable the \"Allow for all future sessions\" option in tool confirmation dialogs.";
                readonly showInDialog: true;
            };
            readonly blockGitExtensions: {
                readonly type: "boolean";
                readonly label: "Blocks extensions from Git";
                readonly category: "Security";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Blocks installing and loading extensions from Git.";
                readonly showInDialog: true;
            };
            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: string | 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 experimental: {
        readonly type: "object";
        readonly label: "Experimental";
        readonly category: "Experimental";
        readonly requiresRestart: true;
        readonly default: {};
        readonly description: "Experimental features.";
        readonly showInDialog: false;
        readonly properties: {
            readonly extensionReloading: {
                readonly type: "boolean";
                readonly label: "Extension Reloading";
                readonly category: "Experimental";
                readonly requiresRestart: true;
                readonly default: false;
                readonly description: "Enables extension loading/unloading within the CLI session.";
                readonly showInDialog: false;
            };
            readonly jitContext: {
                readonly type: "boolean";
                readonly label: "JIT Context Loading";
                readonly category: "Experimental";
                readonly requiresRestart: true;
                readonly default: true;
                readonly description: "Enable just-in-time context memory loading via ContextManager instead of eager loading at startup.";
                readonly showInDialog: false;
            };
        };
    };
    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: true;
        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 disabled: string[];
            readonly workspacesWithMigrationNudge: string[];
            readonly autoUpdate: {
                enabled: boolean;
                checkIntervalHours: number;
                installMode: "immediate";
                notificationLevel: "toast";
                perExtension: Record<string, {
                    enabled?: boolean;
                    installMode?: "immediate" | "on-restart" | "manual";
                    notificationLevel?: "silent" | "toast" | "dialog";
                    checkIntervalHours?: number;
                }>;
            };
        };
        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 autoUpdate: {
                readonly type: "object";
                readonly label: "Extension Auto-Update";
                readonly category: "Extensions";
                readonly requiresRestart: false;
                readonly default: {
                    enabled: boolean;
                    checkIntervalHours: number;
                    installMode: "immediate";
                    notificationLevel: "toast";
                    perExtension: Record<string, {
                        enabled?: boolean;
                        installMode?: "immediate" | "on-restart" | "manual";
                        notificationLevel?: "silent" | "toast" | "dialog";
                        checkIntervalHours?: number;
                    }>;
                };
                readonly description: "Configure how llxprt-code checks for and applies extension updates.";
                readonly showInDialog: false;
                readonly properties: {
                    readonly enabled: {
                        readonly type: "boolean";
                        readonly label: "Enable Auto-Update";
                        readonly category: "Extensions";
                        readonly requiresRestart: false;
                        readonly default: true;
                        readonly description: "Automatically check for updates to globally installed extensions.";
                        readonly showInDialog: false;
                    };
                    readonly checkIntervalHours: {
                        readonly type: "number";
                        readonly label: "Auto-Update Interval (hours)";
                        readonly category: "Extensions";
                        readonly requiresRestart: false;
                        readonly default: 24;
                        readonly description: "How often llxprt-code should check for extension updates.";
                        readonly showInDialog: false;
                    };
                    readonly installMode: {
                        readonly type: "enum";
                        readonly label: "Install Mode";
                        readonly category: "Extensions";
                        readonly requiresRestart: false;
                        readonly default: "immediate";
                        readonly description: "Choose whether updates apply immediately, on restart, or manually.";
                        readonly showInDialog: false;
                        readonly options: readonly [{
                            readonly value: "immediate";
                            readonly label: "Immediate";
                        }, {
                            readonly value: "on-restart";
                            readonly label: "On Restart";
                        }, {
                            readonly value: "manual";
                            readonly label: "Manual";
                        }];
                    };
                    readonly notificationLevel: {
                        readonly type: "enum";
                        readonly label: "Notification Level";
                        readonly category: "Extensions";
                        readonly requiresRestart: false;
                        readonly default: "toast";
                        readonly description: "Controls how aggressively update notifications are surfaced.";
                        readonly showInDialog: false;
                        readonly options: readonly [{
                            readonly value: "toast";
                            readonly label: "Toast";
                        }, {
                            readonly value: "dialog";
                            readonly label: "Dialog";
                        }, {
                            readonly value: "silent";
                            readonly label: "Silent";
                        }];
                    };
                    readonly perExtension: {
                        readonly type: "object";
                        readonly label: "Per Extension Overrides";
                        readonly category: "Extensions";
                        readonly requiresRestart: false;
                        readonly default: Record<string, {
                            enabled?: boolean;
                            installMode?: "immediate" | "on-restart" | "manual";
                            notificationLevel?: "silent" | "toast" | "dialog";
                            checkIntervalHours?: number;
                        }>;
                        readonly description: "Override auto-update behavior for individual extensions (by extension name).";
                        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: "enum";
        readonly label: "Shell Replacement";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: "allowlist";
        readonly description: "Control command substitution in shell commands: \"allowlist\" (validate inner commands against coreTools), \"all\" (allow all), \"none\" (block all).";
        readonly showInDialog: false;
        readonly options: {
            value: string;
            label: string;
        }[];
    };
    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: boolean | undefined;
        readonly description: "Use ripgrep for file content search instead of the fallback implementation. When unset, ripgrep is auto-enabled if detected.";
        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 showProfileChangeInChat: {
        readonly type: "boolean";
        readonly label: "Show Profile Change in Chat";
        readonly category: "General";
        readonly requiresRestart: false;
        readonly default: true;
        readonly description: "Show a message in chat when the active profile changes.";
        readonly showInDialog: true;
    };
    readonly enableFuzzyFiltering: {
        readonly type: "boolean";
        readonly label: "Enable Fuzzy Filtering";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: true;
        readonly description: "Enable fuzzy filtering for command menu completions. When enabled, you can type partial characters (e.g., \"prd\" to match \"production\"). When disabled, only exact prefix matches are shown.";
        readonly showInDialog: true;
    };
    readonly customWittyPhrases: {
        readonly type: "array";
        readonly label: "Custom Witty Phrases";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: string[];
        readonly description: string;
        readonly showInDialog: false;
        readonly items: {
            readonly type: "string";
        };
    };
    readonly wittyPhraseStyle: {
        readonly type: "enum";
        readonly label: "Witty Phrase Style";
        readonly category: "UI";
        readonly requiresRestart: false;
        readonly default: "default";
        readonly description: "Choose which collection of witty phrases to display during loading.";
        readonly showInDialog: true;
        readonly options: ({
            value: "default";
            label: string;
        } | {
            value: "llxprt";
            label: string;
        } | {
            value: "gemini-cli";
            label: string;
        } | {
            value: "whimsical";
            label: string;
        } | {
            value: "custom";
            label: string;
        })[];
    };
    readonly hooks: {
        readonly type: "object";
        readonly label: "Hooks";
        readonly category: "Advanced";
        readonly requiresRestart: false;
        readonly default: { [K in HookEventName]?: HookDefinition[]; } | {
            disabled?: string[];
        };
        readonly description: "Hook configurations for intercepting and customizing agent behavior.";
        readonly showInDialog: false;
        readonly mergeStrategy: MergeStrategy.SHALLOW_MERGE;
        readonly properties: {
            readonly disabled: {
                readonly type: "array";
                readonly label: "Disabled Hooks";
                readonly category: "Advanced";
                readonly requiresRestart: false;
                readonly default: string[];
                readonly description: "List of hook names to disable";
                readonly showInDialog: false;
            };
        };
    };
};
export type SettingsSchemaType = typeof SETTINGS_SCHEMA;
export type SettingsJsonSchemaDefinition = Record<string, unknown>;
export declare const SETTINGS_SCHEMA_DEFINITIONS: Record<string, SettingsJsonSchemaDefinition>;
export declare function getSettingsSchema(): SettingsSchemaType;
type InferSettings<T extends SettingsSchema> = {
    -readonly [K in keyof T]?: T[K] extends {
        properties: SettingsSchema;
    } ? InferSettings<T[K]['properties']> : T[K]['type'] extends 'enum' ? T[K]['options'] extends readonly SettingEnumOption[] ? T[K]['options'][number]['value'] : T[K]['default'] : T[K]['default'] extends boolean ? boolean : T[K]['default'];
};
export type Settings = InferSettings<SettingsSchemaType>;
export interface FooterSettings {
    hideCWD?: boolean;
    hideSandboxStatus?: boolean;
    hideModelInfo?: boolean;
}
export {};
