export interface LogicalItem { quantity: number; name: string; sku: string; children: LogicalItem[]; } export interface LogicalCart { items: LogicalItem[]; } export interface TurnBase { speaker: string; } export interface TurnTranscription { transcription: string; } export interface TurnAudio { audio: string; } export declare type SpokenTurn = TurnBase & TurnAudio; export declare type TextTurn = TurnBase & TurnTranscription; export declare type CombinedTurn = TurnBase & TurnAudio & TurnTranscription; export declare type AnyTurn = CombinedTurn | SpokenTurn | TextTurn; export interface Expected { cart: LogicalCart; } export interface Measures { perfect: boolean; complete: boolean; repairs?: { cost: number; steps: string[]; }; } export interface MeasuresField { measures: Measures; } export interface AggregatedMeasures { notes: string; totalTests: number; totalSteps: number; perfectSteps: number; completeSteps: number; totalRepairs: number; } export interface AggregatedMeasuresField { measures: AggregatedMeasures; } export interface Step { turns: TURN[]; } export declare type ValidationStep = Step & Expected; export declare type ScoredStep = ValidationStep & MeasuresField; export interface GenericCase { id: number; suites: string; comment: string; steps: STEP[]; } export interface GenericSuite { comment?: string; tests: Array | GenericSuite>; } export declare type LogicalTestSuite = GenericSuite>; export declare type LogicalValidationSuite = GenericSuite>; export declare type LogicalScoredSuite = GenericSuite> & AggregatedMeasuresField; export declare type AnySuite> = LogicalTestSuite | LogicalValidationSuite | LogicalScoredSuite;