import type { FileHandle } from 'node:fs/promises'; import { z } from 'zod'; import { type IndexEntry } from './index-page.js'; import { type EvidenceBudget } from './io.js'; import type { SessionEvidenceScope, SessionTextEvidenceReadResult } from './types.js'; export declare const textPointerSchema: z.ZodObject; source: z.ZodEnum<["tool_completed", "message_completed", "compaction_shed:system", "compaction_shed:summary", "compaction_shed:user", "compaction_shed:assistant", "compaction_shed:tool"]>; part: z.ZodDefault; toolName: z.ZodOptional; toolUseId: z.ZodOptional; isError: z.ZodOptional; truncated: z.ZodBoolean; spill: z.ZodOptional; filter: z.ZodString; tokenFilter: z.ZodOptional; }, "length" | "offset" | "seq" | "part" | "sha256">, "strip", z.ZodTypeAny, { length: number; offset: number; seq: number; part: number; sha256: string; }, { length: number; offset: number; seq: number; sha256: string; part?: number | undefined; }>; export interface TextSource { entry: IndexEntry; recordedAt?: number; bytes: number; chars?: number; retained: 'full' | 'preview'; chunks: number; mayMatch(chunk: number, query: string, matchMode?: 'literal' | 'token', caseSensitive?: boolean): boolean; window(chunk: number, preceding?: boolean): Promise<{ bytes: Buffer; offset: number; characterOffset?: number; searchFrom?: number; }>; } /** One authenticated record per operation, never shared between calls or sources. */ export declare function createTextSourceReader(handle: FileHandle, sessionDir: string, sessionId: string, budget: EvidenceBudget): (pointer: z.infer, verifiedRecord?: Buffer) => Promise; export declare function readTextPage(source: TextSource, scope: SessionEvidenceScope, offset: number, budget: EvidenceBudget): Promise; //# sourceMappingURL=source-text.d.ts.map