import type { ParsedMessage } from "shared/types/index.js";
/**
 * Read `<sessionDir>/transcript.jsonl` if it exists and project every record
 * into a {@link ParsedMessage} timeline. Returns `null` when the file is
 * absent (caller should fall back to the state.json-based parser);
 * returns an empty array when the file exists but contains only records
 * we don't render (e.g. session_start / session_end).
 *
 * Sync I/O: each transcript is one record per turn, so a multi-thousand-turn
 * chat is still tens of KB. The route handler that calls this is sync
 * end-to-end (see `chats.ts:GET /:id/messages` → `parseSessionMessages`),
 * so streaming would require interface-wide async churn for no real-world
 * benefit at current sizes.
 */
export declare function readOpenRouterTranscript(sessionDir: string): ParsedMessage[] | null;
//# sourceMappingURL=transcriptParser.d.ts.map