import { BlockTrace as BaseBlockTrace, ChoiceTrace as BaseChoiceTrace, Config, DebugTrace as BaseDebugTrace, DeviceType, Dimensions, ExitTrace as BaseEndTrace, FlowTrace as BaseFlowTrace, GeneralTrace as BaseGeneralTrace, Request, SpeakTrace as BaseSpeakTrace, TraceFrame, VisualTrace as BaseVisualTrace } from '@voiceflow/general-types'; import { CanvasVisibility, ImageStepData } from '@voiceflow/general-types/build/nodes/visual'; import { State } from '@voiceflow/runtime'; export declare type GeneralRequest = Request | null; export declare enum TraceType { BLOCK = "block", CHOICE = "choice", DEBUG = "debug", END = "end", FLOW = "flow", SPEAK = "speak", AUDIO = "audio", VISUAL = "visual" } export declare type AdaptTraceType = Omit & { type: S; }; export declare type BlockTrace = AdaptTraceType; export declare type ChoiceTrace = AdaptTraceType; export declare type DebugTrace = AdaptTraceType; export declare type EndTrace = AdaptTraceType; export declare type FlowTrace = AdaptTraceType; export declare type AudioTrace = { type: TraceType.AUDIO; payload: Omit; }; export declare type SpeakTrace = { type: TraceType.SPEAK; payload: Omit; }; export declare type VisualTrace = AdaptTraceType & { payload: ImageStepData; }; export declare type GeneralTrace = BlockTrace | ChoiceTrace | DebugTrace | EndTrace | FlowTrace | AudioTrace | SpeakTrace | VisualTrace; export declare type ResponseContext = { state: State; request: GeneralRequest; trace: GeneralTrace[]; }; export declare type RequestContext = { state?: State; request: GeneralRequest; config?: Config; }; export declare type BlockTraceHandler = (blockID: BlockTrace['payload']['blockID']) => any; export declare type ChoiceTraceHandler = (choices: ChoiceTrace['payload']['choices']) => any; export declare type DebugTraceHandler = (message: DebugTrace['payload']['message']) => any; export declare type EndTraceHandler = () => any; export declare type FlowTraceHandler = (diagramID: FlowTrace['payload']['diagramID']) => any; export declare type SpeakTraceHandler = (message: SpeakTrace['payload']['message'], src: SpeakTrace['payload']['src']) => any; export declare type AudioTraceHandler = (src: SpeakTrace['payload']['src']) => any; export declare type VisualTraceHandler = (image: string | null, device: DeviceType | null, dimensions: Dimensions | null, visiblity: CanvasVisibility) => any; export declare type TraceHandlerMap = { [TraceType.BLOCK]: BlockTraceHandler; [TraceType.CHOICE]: ChoiceTraceHandler; [TraceType.DEBUG]: DebugTraceHandler; [TraceType.END]: EndTraceHandler; [TraceType.FLOW]: FlowTraceHandler; [TraceType.SPEAK]: SpeakTraceHandler; [TraceType.AUDIO]: AudioTraceHandler; [TraceType.VISUAL]: VisualTraceHandler; }; export declare type TraceMap = { [TraceType.BLOCK]: BlockTrace; [TraceType.CHOICE]: ChoiceTrace; [TraceType.DEBUG]: DebugTrace; [TraceType.END]: EndTrace; [TraceType.FLOW]: FlowTrace; [TraceType.SPEAK]: SpeakTrace; [TraceType.AUDIO]: AudioTrace; [TraceType.VISUAL]: VisualTrace; }; export declare enum TraceEvent { GENERAL = "general", BEFORE_PROCESSING = "before_processing", AFTER_PROCESSING = "after_processing" } export declare type Choice = ChoiceTrace['payload']['choices'][number]; export declare const is_V1Trace: (trace: any) => trace is TraceFrame;