import type { Component } from '@earendil-works/pi-tui';
import type { TuiAutocompleteProvider, TuiExtensionHostContract, TuiExtensionRegistrar, TuiNotifyLevel, TuiSlashCommandHandler } 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;
    showOverlay: (component: Component) => void;
    hideOverlay: () => void;
    onAutocompleteProviderAdded: (provider: TuiAutocompleteProvider) => () => void;
    onSlashCommandAdded: (name: string, description: string, handler: TuiSlashCommandHandler) => () => 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<void>;
