import { type CorpusRecord, type CorpusSource, type SourceFingerprint } from "./session-corpus.js"; export declare const EVIDENCE_LIMITS: { readonly reports: 4; readonly events: 5000; readonly indexBytes: number; readonly responseBytes: 8192; readonly pageRows: 10; readonly fields: 8; readonly lifetimeMs: number; }; declare const PUBLIC_TOOL_LABELS: readonly ["read", "edit", "write", "bash", "powershell", "grep", "find", "ls", "pi_analyze_session", "pi_query_session", "skill_eval_bootstrap", "skill_eval_review", "codecks_card_search", "codecks_card_get", "codecks_card_bulk_create", "codecks_card_update"]; type PublicToolLabel = typeof PUBLIC_TOOL_LABELS[number]; export declare function publicToolLabel(name: string): PublicToolLabel | undefined; export type Outcome = "success" | "failure" | "unknown"; export type Classification = { failed: boolean; nativeOutcome: Outcome; semanticOutcome: Outcome | "not-applicable"; source: "native" | "structured" | "text_fallback" | "none"; heuristicLead: boolean; }; type Locator = { sourceRef: string; sessionRef: string; lineageRef: string; entryRef: string; parentRef: string | null; line: number; time: number | null; selected: boolean; duplicate: boolean; }; export type CallEvidence = { locator: Locator; toolRef: string; toolLabel?: PublicToolLabel | undefined; fields: Array<{ fieldRef: string; type: string; }>; omittedFields: number; block: number; }; export type EvidencePacket = { eventRef: string; kind: "tool_result" | "tool_call" | "user_message" | "assistant_error" | "assistant_aborted"; provenance: Locator; toolRef?: string; toolLabel?: PublicToolLabel | undefined; call?: CallEvidence; outcome?: Classification; context?: Array<{ provenance: Locator; role: "user" | "assistant" | "toolResult" | "other"; }>; join?: "native_id_ancestry" | "legacy_name_ancestry" | "unresolved"; messageObservedSpanMs?: number | null; }; type Lead = { leadRef: string; toolRef?: string | undefined; toolLabel?: PublicToolLabel | undefined; signature: string; judgment: "unreviewed"; indexedEvents: number; indexedSessions: number; indexedLineages: number; eventRef: string; }; type PrivateSource = { path: string; fingerprint?: SourceFingerprint | undefined; changed: boolean; }; type Cluster = { lead: Lead; events: number[]; sessions: Set; lineages: Set; }; /** No transcript text, unvetted tool names, argument keys/values or native IDs survive into this index. */ export declare class EvidenceBuilder { private salt; sources: Map; events: EvidencePacket[]; clusters: Map; observedEvents: number; private accountedBytes; private closed; ref(kind: string, identity: string): string; locator(source: CorpusSource, record: CorpusRecord): Locator; call(source: CorpusSource, record: CorpusRecord, block: number, name: string, args: Record): CallEvidence; add(source: CorpusSource, packet: Omit): void; finish(): { sources: Map; events: EvidencePacket[]; clusters: Cluster[]; coverage: { analysisIncomplete: boolean; observedEvents: number; indexedEvents: number; omittedEvents: number; indexedLeads: number; accountedIndexBytes: number; }; }; } type Index = ReturnType; type StoredReport = Index & { reportRef: string; expiresAt: number; scope: object | string; timer: NodeJS.Timeout; cursorSalt: Buffer; }; export type QueryParams = { reportRef: string; leadRef?: string; eventRef?: string; toolRef?: string; view?: "events" | "leads" | "locator"; cursor?: string; limit?: number; release?: boolean; allowLocalPathDisclosure?: boolean; target?: "event" | "call" | "context"; contextIndex?: number; }; export declare function evidenceResult(details: Record): { content: { type: "text"; text: string; }[]; details: Record; }; /** Extension-instance scoped, memory-only; no persisted transcript/index or background worker. */ export declare class EvidenceStore { private reports; private retired; generation: number; private retire; clear(scope?: object | string): void; private prune; save(index: Index, scope: object | string, generation?: number): StoredReport; private get; private cursor; private page; scanPage(report: StoredReport, metadata: Record, limit?: number): { content: { type: "text"; text: string; }[]; details: Record; }; private checkSources; private localLocator; query(params: QueryParams, scope: object | string, signal?: AbortSignal): Promise<{ content: { type: "text"; text: string; }[]; details: Record; }>; } export {}; //# sourceMappingURL=session-evidence.d.ts.map