import type { ApprovalCardOutcome, ApprovalCardPrompt, ChoiceCardPrompt, ButtonCallback, MessageContext, MessengerAdapter } from '../../core/types.js'; export interface TuiApprovalView { messageId: string; threadId: string; prompt: ApprovalCardPrompt; outcome?: ApprovalCardOutcome; } export type TuiApprovalChoice = 'y' | 'n' | 'a'; export type TuiAskSelectionMode = 'single' | 'multi'; export interface TuiAskView { messageId: string; threadId: string; prompt: ChoiceCardPrompt; reqId: string; selectionMode: TuiAskSelectionMode; minSelections: number; maxSelections: number; allowCustomInput: boolean; customInputLabel: string; finalText?: string; } type ApprovalListener = (approval: TuiApprovalView | null) => void; type AskListener = (ask: TuiAskView | null) => void; export declare class TuiApprovalBridge implements MessengerAdapter { readonly name = "tui"; private buttonHandler?; private listeners; private askListeners; private current; private currentAsk; private sessionId; private seq; constructor(sessionId: string); setSession(sessionId: string): void; subscribe(listener: ApprovalListener): () => void; subscribeAsk(listener: AskListener): () => void; start(): Promise; stop(): Promise; onMessage(_handler: (ctx: MessageContext) => Promise): void; sendMessage(_threadId: string, text: string): Promise; onButtonCallback(handler: (cb: ButtonCallback) => Promise): void; sendApprovalCard(threadId: string, prompt: ApprovalCardPrompt): Promise<{ messageId: string; }>; editApprovalCard(threadId: string, messageId: string, outcome: ApprovalCardOutcome): Promise; sendChoiceCard(threadId: string, prompt: ChoiceCardPrompt): Promise<{ messageId: string; }>; editChoiceCard(threadId: string, messageId: string, finalText: string): Promise; submitChoice(choice: TuiApprovalChoice): Promise; submitText(text: string): Promise; submitAskSingle(index: number): Promise; submitAskMulti(indexes: number[]): Promise; submitAskCustom(text: string): Promise; submitAskText(text: string): Promise; private submitAskCallback; private emit; private emitAsk; } export {}; //# sourceMappingURL=approval-bridge.d.ts.map