import type { Component, TUI } from '@earendil-works/pi-tui';
import type { TuiBackend, TuiModelChoice } from './tui-backend.js';
import type { TuiSettings } from './tui-settings.js';
export type PickerServices = {
    tui: TUI;
    editor: Component;
    openOverlay: (c: Component) => void;
    closeOverlay: () => void;
    chatLog: {
        addSystem: (t: string) => void;
    };
    client: TuiBackend;
    sendMessage: (text: string) => void;
    refreshSessionInfo: () => Promise<void>;
    updateHeader: () => void;
    state: {
        currentSessionKey: string;
    };
    setSessionKey: (key: string) => void;
    clearChatForSessionSwitch: () => void;
    loadSessionHistory: () => Promise<void>;
    setModelChoices: (models: TuiModelChoice[]) => void;
    getScopedModelRefs: () => string[] | null;
    setScopedModelRefs: (refs: string[] | null) => void;
    refreshCycleModels: () => void;
    getTuiSettings: () => TuiSettings;
    applyTuiSettings: (settings: TuiSettings) => void;
    previewTheme: (themeId: string) => void;
    reloadKeybindings: () => void;
};
/** Ctrl+L — pick model, sends `/switch provider/id`. */
export declare function openModelPickerOverlay(svc: PickerServices): Promise<void>;
/** Ctrl+Shift+P — session picker with rename/delete. */
export declare function openSessionPickerOverlay(svc: PickerServices): Promise<void>;
/** `/scoped-models` — limit Ctrl+P model cycle set. */
export declare function openScopedModelsOverlay(svc: PickerServices): Promise<void>;
/** `/settings` — TUI preferences overlay. */
export declare function openSettingsOverlay(svc: PickerServices): void;
