import type { CommandOutputRecord, EvidenceLineage, EvidencePersistence, ExecutionStatus, MetadataOutputRecord, OutputFingerprints, OutputStream, ProducerDescriptor, RepoFileReferenceRecord, RouterVaultConfig, SessionIndexEntry, TextOutputRecord, VaultRecord, VaultRetentionPolicy, VaultSessionIndex, } from "../config/types.js"; export interface VaultHandle { root: string; retention: VaultRetentionPolicy; } export interface CreateVaultOptions extends Partial {} export interface StoreCommandOutputOptions { sessionId: string; command: string | readonly string[]; stdout: string; stderr: string; executionStatus: ExecutionStatus; exitCode: number | null; combined?: string; cwd?: string; durationMs?: number; decisionIds?: string[]; createdAt?: string; producer?: ProducerDescriptor; persistence?: EvidencePersistence; lineage?: EvidenceLineage; } export interface StoreTextOutputOptions { sessionId: string; raw: string; sourceKind: TextOutputRecord["sourceKind"]; decisionIds?: string[]; createdAt?: string; producer?: ProducerDescriptor; persistence?: EvidencePersistence; lineage?: EvidenceLineage; } export interface StoreRepoFileReferenceOptions { sessionId: string; path: string; hashSha256?: string; decisionIds?: string[]; createdAt?: string; producer?: ProducerDescriptor; persistence?: EvidencePersistence; lineage?: EvidenceLineage; } export interface StoreMetadataOutputOptions { sessionId: string; sourceKind: MetadataOutputRecord["sourceKind"]; rawLineCount: number; rawByteCount: number; rawSha256?: string; metadata?: Record; decisionIds?: string[]; createdAt?: string; producer?: ProducerDescriptor; persistence?: EvidencePersistence; lineage?: EvidenceLineage; } export interface ReadOutputLinesOptions { sessionId: string; outputId: string; stream: OutputStream; startLine: number; endLine: number; } export interface CommandOutputFingerprintOptions { command: string | readonly string[]; stdout: string; stderr: string; executionStatus: ExecutionStatus; exitCode: number | null; combined?: string; cwd?: string; } export interface TextOutputFingerprintOptions { raw: string; } export interface FindExactDuplicateCommandOutputOptions { sessionId: string; fingerprints: OutputFingerprints & { commandFingerprintSha256: string; }; excludeOutputId?: string; } export interface FindExactDuplicateTextOutputOptions { sessionId: string; fingerprints: OutputFingerprints; excludeOutputId?: string; } export declare function createVault(options?: CreateVaultOptions): VaultHandle; export declare function resolveVaultRoot(root: string): string; export declare function commandOutputFingerprints(options: CommandOutputFingerprintOptions): OutputFingerprints & { commandFingerprintSha256: string; }; export declare function textOutputFingerprints(options: TextOutputFingerprintOptions): OutputFingerprints; export declare function findExactDuplicateCommandOutput( vault: VaultHandle, options: FindExactDuplicateCommandOutputOptions, ): Promise; export declare function findExactDuplicateTextOutput( vault: VaultHandle, options: FindExactDuplicateTextOutputOptions, ): Promise; export declare function storeCommandOutput( vault: VaultHandle, options: StoreCommandOutputOptions, ): Promise; export declare function storeTextOutput(vault: VaultHandle, options: StoreTextOutputOptions): Promise; export declare function storeMetadataOutput( vault: VaultHandle, options: StoreMetadataOutputOptions, ): Promise; export declare function storeRepoFileReference( vault: VaultHandle, options: StoreRepoFileReferenceOptions, ): Promise; export declare function readVaultRecord(vault: VaultHandle, sessionId: string, outputId: string): Promise; export declare function readOutputText( vault: VaultHandle, sessionId: string, outputId: string, stream: OutputStream, ): Promise; export declare function readOutputLines(vault: VaultHandle, options: ReadOutputLinesOptions): Promise; export declare function readSessionIndex(vault: VaultHandle, sessionId: string): Promise;