import type { ThinkingLevel } from "@dreb/agent-core";
import type { Transport } from "@dreb/ai";
import { type Component, Container, SettingsList } from "@dreb/tui";
export interface SettingsConfig {
    autoCompact: boolean;
    showImages: boolean;
    autoResizeImages: boolean;
    blockImages: boolean;
    enableSkillCommands: boolean;
    steeringMode: "all" | "one-at-a-time";
    followUpMode: "all" | "one-at-a-time";
    transport: Transport;
    thinkingLevel: ThinkingLevel;
    availableThinkingLevels: ThinkingLevel[];
    currentTheme: string;
    availableThemes: string[];
    hideThinkingBlock: boolean;
    /** Whether the current model supports adaptive thinking (gates the thinking-display toggle). */
    thinkingDisplaySupported: boolean;
    /** Effective thinking-display value for the current model ("summarized" shown as on). */
    thinkingDisplay: "summarized" | "omitted";
    collapseChangelog: boolean;
    doubleEscapeAction: "fork" | "tree" | "none";
    treeFilterMode: "default" | "no-tools" | "user-only" | "labeled-only" | "all";
    showHardwareCursor: boolean;
    editorPaddingX: number;
    autocompleteMaxVisible: number;
    quietStartup: boolean;
    /** Per-agent model overrides from agentModels settings */
    agentModels: Record<string, string[]>;
    /** Known agent names for the mach6 models submenu */
    agentNames: string[];
    /** Available model IDs for selection in the ranked list */
    availableModelIds: string[];
}
export interface SettingsCallbacks {
    onAutoCompactChange: (enabled: boolean) => void;
    onShowImagesChange: (enabled: boolean) => void;
    onAutoResizeImagesChange: (enabled: boolean) => void;
    onBlockImagesChange: (blocked: boolean) => void;
    onEnableSkillCommandsChange: (enabled: boolean) => void;
    onSteeringModeChange: (mode: "all" | "one-at-a-time") => void;
    onFollowUpModeChange: (mode: "all" | "one-at-a-time") => void;
    onTransportChange: (transport: Transport) => void;
    onThinkingLevelChange: (level: ThinkingLevel) => void;
    onThemeChange: (theme: string) => void;
    onThemePreview?: (theme: string) => void;
    onHideThinkingBlockChange: (hidden: boolean) => void;
    onThinkingDisplayChange: (display: "summarized" | "omitted") => void;
    onCollapseChangelogChange: (collapsed: boolean) => void;
    onDoubleEscapeActionChange: (action: "fork" | "tree" | "none") => void;
    onTreeFilterModeChange: (mode: "default" | "no-tools" | "user-only" | "labeled-only" | "all") => void;
    onShowHardwareCursorChange: (enabled: boolean) => void;
    onEditorPaddingXChange: (padding: number) => void;
    onAutocompleteMaxVisibleChange: (maxVisible: number) => void;
    onQuietStartupChange: (enabled: boolean) => void;
    onAgentModelsChange: (agentName: string, models: string[]) => void;
    onCancel: () => void;
}
/**
 * Top-level Mach6 Models submenu. Shows a list of agents, selecting one opens
 * a RankedList editor for that agent's model fallback list.
 *
 * Navigation: Agent list → RankedList → (optional) Add Model picker
 */
export declare class AgentModelsSubmenu implements Component {
    private agentList;
    private rankedList;
    private addList;
    private addListSearchQuery;
    private rankedNotice;
    private activeView;
    private currentAgentName;
    private agentNames;
    private agentModels;
    private availableModelIds;
    private onModelsChange;
    private onCancel;
    constructor(agentNames: string[], agentModels: Record<string, string[]>, availableModelIds: string[], onModelsChange: (agentName: string, models: string[]) => void, onCancel: () => void);
    private buildAgentList;
    private openRankedList;
    private openAddModelPicker;
    private saveModels;
    invalidate(): void;
    render(width: number): string[];
    handleInput(data: string): void;
}
/**
 * Main settings selector component.
 */
export declare class SettingsSelectorComponent extends Container {
    private settingsList;
    constructor(config: SettingsConfig, callbacks: SettingsCallbacks);
    getSettingsList(): SettingsList;
}
//# sourceMappingURL=settings-selector.d.ts.map