import { Session } from './Session'; import { InferClassificationUnion } from './TypeInference'; import { ResponseType } from './ResponseTypes'; export interface ClassificationTypeConfig { name: string; description: string; schema: Record; } export type InferMessageType = Extract, { messageType: K; }>; export type ClassifiedTypeHandlers = { [K in T[number]['name']]: (result: InferMessageType, session: Session) => void; }; export interface IClassifier { getClassificationTypeDefinition(): Readonly; handleLLMResponse(response: string, session: Session): ResponseType; }