import type { AxiosInstance } from 'axios'; import type { LogEntry, LogsQueryParams, LogsResponse } from '../types.js'; import { type EvidenceEnvelope } from './contract.js'; type GetLogsFn = (client: AxiosInstance, params: LogsQueryParams, signal?: AbortSignal) => Promise; export interface LogCaptureOptions { maxItems: number; intervalMs: number; timeoutMs: number; maxAttempts: number; getLogsFn?: GetLogsFn; sleepFn?: (ms: number) => Promise; nowFn?: () => number; } export interface CaptureAttempt { attempt: number; started_at: string; completed_at: string; pages_fetched: number; rows_fetched: number; new_rows: number; exhausted: boolean; cap_saturated: boolean; failure?: { page: number; message: string; retryable: boolean; }; } export interface SettledLogCapture { rows: LogEntry[]; attempts: CaptureAttempt[]; settled: boolean; complete: boolean; capSaturated: boolean; timedOut: boolean; attemptsExhausted: boolean; } interface LogCaptureDetails extends Record { query_scope: LogsQueryParams; client_filter: { name: string | null; }; row_count: number; empty_capture: boolean; complete: boolean; settled: boolean; total_cap: number; total_cap_saturated: boolean; settle: { interval_ms: number; timeout_ms: number; max_attempts: number; attempts_used: number; timed_out: boolean; attempts_exhausted: boolean; }; attempts: CaptureAttempt[]; } export declare function captureSettledLogs(client: AxiosInstance, params: LogsQueryParams, options: LogCaptureOptions): Promise; export declare function writeLogCapture(capturePath: string, manifestPath: string, capture: SettledLogCapture, context: { account: Record; accountLimitations: string[]; baseUrl: string; params: LogsQueryParams; nameFilter: string | null; options: LogCaptureOptions; startedAt: string; }): Promise>; export {}; //# sourceMappingURL=log-capture.d.ts.map