export interface QuestionOption { label: string; description: string; } export interface QuestionInfo { question: string; header: string; options: QuestionOption[]; multiple?: boolean; custom?: boolean; } export interface QuestionRequest { id: string; sessionID: string; questions: QuestionInfo[]; tool?: { messageID: string; callID: string; }; } export interface PendingQuestion { request: QuestionRequest; conversationKey: string; chatId: string; feishuCardMessageId?: string; draftAnswers: string[][]; draftCustomAnswers: string[]; pendingCustomQuestionIndex?: number; currentQuestionIndex: number; optionPageIndexes: number[]; createdAt: number; } declare class QuestionHandler { private pending; private sessionIndex; register(request: QuestionRequest, conversationKey: string, chatId: string): void; setCardMessageId(requestId: string, messageId: string): void; get(requestId: string): PendingQuestion | undefined; getBySession(sessionId: string): PendingQuestion | undefined; getByCardMessageId(messageId: string): PendingQuestion | undefined; getByConversationKey(conversationKey: string): PendingQuestion | undefined; setDraftAnswer(requestId: string, questionIndex: number, answers: string[]): void; setPendingCustomQuestion(requestId: string, questionIndex: number | undefined): void; getPendingCustomQuestionIndex(requestId: string): number | undefined; getDraftAnswers(requestId: string): string[][] | null; setDraftCustomAnswer(requestId: string, questionIndex: number, answer: string): void; getDraftCustomAnswers(requestId: string): string[] | null; setCurrentQuestionIndex(requestId: string, index: number): void; getCurrentQuestionIndex(requestId: string): number | null; setOptionPageIndex(requestId: string, questionIndex: number, pageIndex: number): void; getOptionPageIndex(requestId: string, questionIndex: number): number | null; remove(requestId: string): PendingQuestion | undefined; has(requestId: string): boolean; hasForSession(sessionId: string): boolean; getAll(): PendingQuestion[]; cleanupExpired(timeoutMs: number): PendingQuestion[]; get size(): number; } export declare const questionHandler: QuestionHandler; export {}; //# sourceMappingURL=question-handler.d.ts.map