import type { QuestionnaireResult, QuestionParams } from "../tools/ask-user-question/tool/types.js"; import type { ExtensionUIContext } from "./ui-types.js"; export type { QuestionAnswer, QuestionnaireError, QuestionnaireResult, QuestionParams, } from "../tools/ask-user-question/tool/types.js"; export interface HostDiagnostic { level: "info" | "warning" | "error"; source: string; message: string; sessionId: string; } export interface HostInputOptions { signal: AbortSignal; requestId: string; sessionId: string; workflowRunId?: string; workflowStageId?: string; } export interface HostInput { confirm(title: string, message: string, options: HostInputOptions): Promise; select(title: string, choices: string[], options: HostInputOptions): Promise; input(title: string, placeholder: string | undefined, options: HostInputOptions): Promise; editor(title: string, initial: string | undefined, options: HostInputOptions): Promise; questionnaire(params: QuestionParams, options: HostInputOptions): Promise; } export declare function hostInputError(code: "HumanInputUnavailable" | "HumanInputCancelled" | "InvalidHostInput" | "SessionClosed"): Error & { code: string; }; type QuestionnairePresentation = (signal: AbortSignal) => Promise; export declare function getHostQuestionnaire(ui: ExtensionUIContext): ((params: QuestionParams, signal?: AbortSignal, present?: QuestionnairePresentation) => Promise) | undefined; export declare function copyHostQuestionnaire(source: ExtensionUIContext, target: ExtensionUIContext): void; type WorkflowIdentity = Pick & { sessionId?: string; }; /** One runner owns request settlement; host promises cannot revive a retired request. */ export declare class HostInputBridge { private adapter; private configuredInput; private bindingRevision; private closed; private readonly pending; private readonly bindingListeners; private readonly sessionId; private readonly signal; constructor(sessionId: () => string, signal: () => AbortSignal | undefined); bind(adapter: HostInput | undefined, configuredInput?: HostInput | null, bindingRevision?: number): void; get available(): boolean; cancel(): void; close(): void; wrap(ui: ExtensionUIContext, presentationHost?: HostInput, scope?: WorkflowIdentity): ExtensionUIContext; private request; } //# sourceMappingURL=host-input.d.ts.map