import { DispatchRequest, DispatchContext } from './contract'; import type { HookEvent, ModelInfo, SessionRecord, TranscriptMsg, UsagePayload } from './types'; export interface HookFactoryOpts { cwd?: string; sessionId?: string; provider?: string; timestamp?: string; } /** Build realistic hook events the way pixel-office's HookPayloadFactory does. */ export declare class HookEventFactory { cwd: string; sessionId: string; provider: string; timestamp: string; constructor(opts?: HookFactoryOpts); static make(opts?: HookFactoryOpts): HookEventFactory; with(over: Partial): HookEventFactory; private claudeLike; sessionStart(source?: string): HookEvent; sessionEnd(reason?: string): HookEvent; userPromptSubmit(prompt?: string): HookEvent; notification(message: string): HookEvent; toolStart(toolName: string, input?: Record, toolUseId?: string): HookEvent; toolEnd(toolName: string, inputOrOutput?: Record, toolUseId?: string, failure?: boolean): HookEvent; agentMessage(message: string): HookEvent; stop(reason?: string): HookEvent; stopFailure(reason?: string): HookEvent; permissionRequest(tool?: string, command?: string): HookEvent; todoUpdated(todos?: Array<{ id?: string; content?: string; status?: string; }>): HookEvent; /** * Full todo-app lifecycle matching pixel-office HookPayloadFactory::todoAppLifecycle. * Used by the dummy agent and by factory-driven tests. */ todoAppLifecycle(): HookEvent[]; } /** Factory for DispatchRequest DTOs used by manager.dispatch tests. */ export declare class DispatchRequestFactory { static make(over: Partial & { root: string; }): DispatchRequest; static context(over?: Partial): DispatchContext; } /** Factory for session records / transcripts. */ export declare class SessionFactory { static record(over?: Partial): SessionRecord; static transcript(over?: { user?: string; assistant?: string; }): TranscriptMsg[]; } /** Factory for usage snapshots. */ export declare class UsageFactory { static make(over?: Partial): UsagePayload; static claudeBlock(over?: Record): Record; static copilotBlock(over?: Record): Record; } /** Factory for model catalog entries. */ export declare class ModelFactory { static make(over?: Partial): ModelInfo; }