export declare function isArtifactCaptureEnabled(): boolean; export type ArtifactOutcome = "failure" | "unmeaningful"; export interface OcrDetection { text: string; bbox: [number, number, number, number]; conf: number; } export interface ArtifactSenses { ocr: { ran: boolean; durationMs: number; detections: OcrDetection[]; closestMatch: { text: string; score: number; } | null; }; fiber: { ran: boolean; durationMs: number; metroConnected: boolean; pressables: Array<{ label?: string; testID?: string; bounds?: number[]; componentName?: string; }>; }; accessibility: { ran: boolean; durationMs: number; elements: Array<{ label?: string; testID?: string; frame?: number[]; }>; }; } export interface ArtifactInput { artifactId: string; sessionId: string; timestamp: number; version: string; predicate: Record; outcome: ArtifactOutcome; errorCategory?: string; errorMessage?: string; strategyChain?: string; changeRate?: number; meaningful?: boolean; senses: ArtifactSenses; chosenTapPoint: { x: number; y: number; } | null; chosenElement: Record | null; deviceMeta: { platform: "ios" | "android"; driver?: string; screenSize: { w: number; h: number; }; route?: string; }; } export type ArtifactBundle = ArtifactInput; export declare function buildArtifactBundle(input: ArtifactInput): ArtifactBundle; export declare function downscaleScreenshot(input: Buffer): Promise; export declare function gzipBundle(bundle: ArtifactBundle): Buffer; export interface UploadInput { artifactKey: string; apiKey: string; bundleGz: Buffer; pngs: { before?: Buffer; afterWithMarker?: Buffer; }; } export declare function uploadArtifact(input: UploadInput): Promise; export interface CaptureInput { apiKey?: string; outcome: ArtifactOutcome; predicate: Record; errorMessage?: string; errorCategory?: string; strategyChain?: string; sessionId: string; version: string; changeRate?: number; meaningful?: boolean; senses: ArtifactSenses; chosenTapPoint: { x: number; y: number; } | null; chosenElement: Record | null; screenshots: { before: Buffer | null; afterWithMarker: Buffer | null; }; deviceMeta: ArtifactInput["deviceMeta"]; } export interface CaptureSignals { artifactKey: string; ocrClosestMatch: string; fiberPressableCount: string; accessibilityMatchCount: string; appRoute: string; nearbyPressables: Array<{ label?: string; testID?: string; }>; } export interface CaptureResult { artifactKey: string; signals: CaptureSignals; } export declare function captureFailureArtifact(input: CaptureInput): Promise; //# sourceMappingURL=failureArtifact.d.ts.map