export interface ITestMetadata { time?: number; startTime?: number; endTime?: number; skip?: string; todo?: string; retry?: number; maxRetries?: number; error?: { message: string; stack?: string; diff?: string; actual?: any; expected?: any; code?: string; }; file?: string; line?: number; column?: number; tags?: string[]; custom?: Record; } export interface ITestResult { ok: boolean; testNumber: number; description: string; directive?: { type: 'skip' | 'todo'; reason?: string; }; metadata?: ITestMetadata; } export interface IPlanLine { start: number; end: number; skipAll?: string; } export interface IProtocolMessage { type: 'test' | 'plan' | 'comment' | 'version' | 'bailout' | 'protocol' | 'snapshot' | 'error' | 'event'; content: any; } export interface IProtocolVersion { version: string; features?: string[]; } export interface ISnapshotData { name: string; content: any; format?: 'json' | 'text' | 'binary'; } export interface IErrorBlock { testNumber?: number; error: { message: string; stack?: string; diff?: string; actual?: any; expected?: any; }; } export type EventType = 'test:queued' | 'test:started' | 'test:progress' | 'test:completed' | 'suite:started' | 'suite:completed' | 'hook:started' | 'hook:completed' | 'assertion:failed'; export interface ITestEvent { eventType: EventType; timestamp: number; data: { testNumber?: number; description?: string; suiteName?: string; hookName?: string; progress?: number; duration?: number; error?: IEnhancedError; [key: string]: any; }; } export interface IEnhancedError { message: string; stack?: string; diff?: IDiffResult; actual?: any; expected?: any; code?: string; type?: 'assertion' | 'timeout' | 'uncaught' | 'syntax' | 'runtime'; } export interface IDiffResult { type: 'string' | 'object' | 'array' | 'primitive'; changes: IDiffChange[]; context?: number; } export interface IDiffChange { type: 'add' | 'remove' | 'modify'; path?: string[]; oldValue?: any; newValue?: any; line?: number; content?: string; } export declare const PROTOCOL_MARKERS: { readonly START: "⟦TSTEST:"; readonly END: "⟧"; readonly META_PREFIX: "META:"; readonly ERROR_PREFIX: "ERROR"; readonly ERROR_END: "/ERROR"; readonly SNAPSHOT_PREFIX: "SNAPSHOT:"; readonly SNAPSHOT_END: "/SNAPSHOT"; readonly PROTOCOL_PREFIX: "PROTOCOL:"; readonly SKIP_PREFIX: "SKIP:"; readonly TODO_PREFIX: "TODO:"; readonly EVENT_PREFIX: "EVENT:"; }; export declare const PROTOCOL_VERSION = "2.0.0";