import type { Component } from '@earendil-works/pi-tui'; import type { TuiAutocompleteProvider, TuiAutocompleteProviderFactory, TuiCustomFactory, TuiCustomOptions, TuiDialogOptions, TuiEditorFactory, TuiExtensionHostContract, TuiExtensionRegistrar, TuiFooterFactory, TuiHeaderFactory, TuiMessageRenderer, TuiNotifyLevel, TuiShortcutHandler, TuiSlashCommandHandler, TuiTerminalInputHandler, TuiSetThemeResult, TuiTheme, TuiThemeInfo, TuiWidgetFactory, TuiWorkingIndicatorOptions } from '../../extensions/types/tui.js'; import { TuiExtensionSurface } from './surface.js'; export interface TuiExtensionHostDeps { extensionId: string; surface: TuiExtensionSurface; getSessionKey: () => string; notify: (message: string, level?: TuiNotifyLevel) => void; onTerminalInputAdded: (handler: TuiTerminalInputHandler) => () => void; showOverlay: (component: Component) => void; hideOverlay: () => void; custom: (factory: TuiCustomFactory, options?: TuiCustomOptions) => Promise; createWidgetComponent: (factory: TuiWidgetFactory) => Component & { dispose?(): void; }; setFooter: (factory: TuiFooterFactory | undefined) => void; setHeader: (factory: TuiHeaderFactory | undefined) => void; setTitle: (title: string) => void; pasteToEditor: (text: string) => void; setEditorText: (text: string) => void; getEditorText: () => string; editor: (title: string, prefill?: string) => Promise; setEditorComponent: (factory: TuiEditorFactory | undefined) => void; getEditorComponent: () => TuiEditorFactory | undefined; getThemeObject: () => TuiTheme; getAllThemes: () => TuiThemeInfo[]; getTheme: (name: string) => TuiTheme | undefined; setTheme: (theme: string) => TuiSetThemeResult; getToolsExpanded: () => boolean; setToolsExpanded: (expanded: boolean) => void; select: (title: string, options: string[], opts?: TuiDialogOptions) => Promise; confirm: (title: string, message: string, opts?: TuiDialogOptions) => Promise; input: (title: string, placeholder?: string, opts?: TuiDialogOptions) => Promise; onAutocompleteProviderAdded: (provider: TuiAutocompleteProvider) => () => void; onAutocompleteProviderFactoryAdded: (factory: TuiAutocompleteProviderFactory) => () => void; onMessageRendererAdded: (customType: string, renderer: TuiMessageRenderer) => () => void; onSlashCommandAdded: (name: string, description: string, handler: TuiSlashCommandHandler) => () => void; onShortcutAdded: (key: string, description: string, handler: TuiShortcutHandler) => () => void; setWorkingMessage: (message?: string) => void; setWorkingVisible: (visible: boolean) => void; setWorkingIndicator: (options?: TuiWorkingIndicatorOptions) => void; setHiddenThinkingLabel: (label?: string) => void; onInvalidate: () => void; } export declare function createTuiExtensionHost(deps: TuiExtensionHostDeps): TuiExtensionHostContract; export declare function invokeTuiExtensionRegistrars(registrars: ReadonlyArray<{ extensionId: string; register: TuiExtensionRegistrar; }>, createHost: (extensionId: string) => TuiExtensionHostContract, onError?: (extensionId: string, errorMessage: string) => void): Promise;