import type { CommandSpec, GateCompareResult, LiveViewRenderer, ReportFailureDetail, SignalDeliveryResult, ToolCliContext, ToolScope } from '@opensip-cli/core'; export interface CapturedLogEntry { readonly level: 'debug' | 'info' | 'warn' | 'error'; readonly message: string | Record; readonly data?: Record; } export interface CapturedEmitError { readonly message: string; readonly exitCode: number; readonly suggestion?: string; readonly code?: string; readonly diagnostic?: unknown; } export interface CapturedDelivery { readonly envelope: unknown; readonly opts: { readonly cwd: string; readonly reportTo?: string; readonly apiKey?: string; readonly runFailed?: boolean; }; } export interface CapturedArtifactWrite { readonly path: string; readonly bytes: string; } export interface CapturedBaselineCompare { readonly tool: string; readonly envelope: unknown; } export interface CapturedBaselineExport { readonly tool: string; readonly path: string; } export interface ToolCliContextCaptured { readonly rendered: unknown[]; readonly json: unknown[]; readonly envelopes: unknown[]; readonly raw: unknown[]; readonly errors: CapturedEmitError[]; readonly reportFailures: ReportFailureDetail[]; readonly exitCodes: number[]; readonly liveViews: Map; readonly liveRenders: { readonly key: string; readonly args: unknown; }[]; readonly maybeOpenReport: { readonly openRequested: boolean; readonly jsonOutput: boolean; }[]; readonly deliveredSignals: CapturedDelivery[]; readonly sarifWrites: { readonly envelope: unknown; readonly path: string; }[]; readonly artifactWrites: CapturedArtifactWrite[]; readonly ensuredArtifactDirs: string[]; readonly savedBaselines: CapturedBaselineCompare[]; readonly comparedBaselines: CapturedBaselineCompare[]; readonly exportedBaselineSarif: CapturedBaselineExport[]; readonly exportedBaselineFingerprints: CapturedBaselineExport[]; readonly toolState: Map>; readonly logs: CapturedLogEntry[]; } export interface ToolCliContextDoubleOptions { readonly scope?: ToolScope; readonly deliveryResult?: SignalDeliveryResult; readonly compareResult?: GateCompareResult; } export interface ToolCliContextDouble { readonly ctx: ToolCliContext; readonly captured: ToolCliContextCaptured; } export interface CommandSpecRunResult extends ToolCliContextDouble { readonly result: TResult; } export declare function createToolCliContextDouble(opts?: ToolCliContextDoubleOptions): ToolCliContextDouble; export declare function runCommandSpec(spec: CommandSpec, opts: TOpts, double?: ToolCliContextDouble): Promise>; //# sourceMappingURL=context-double.d.ts.map