/**
 * Shared, pure builder for the debug-log timeline entries (`message` / `turn` / `event`) — the
 * common core of the host element's `buildDiagnosticEntries` and any HEADLESS consumer that drives
 * a `ChatDriver` of its own (e.g. `ai-service` running the engine server-side) and needs to harvest
 * that engine's debug log for the client to fold into its own download / persisted stream
 * (GENC-1461 unified diagnostics). DOM-clean and dependency-light so it works in bare Node.
 *
 * It deliberately excludes the `meta-snapshot` entry: that block is host/DOM-specific (it reads
 * `window.location.host`, the element's agent list, live context/cost), and a merged log keeps only
 * the newest snapshot anyway — a headless source's agent/prompt/tools are already captured in its
 * `turn` entries.
 *
 * @packageDocumentation
 */
import type { ChatMessage } from '@genesislcap/foundation-ai';
import type { MetaEvent } from '../debug-event-log';
import type { DiagnosticEntry } from './diagnostics';
/**
 * The minimal shape this builder reads off a turn snapshot. The driver's full `TurnSnapshot` is a
 * structural superset, so it assigns to this without the builder depending on the component layer.
 */
export interface TurnSnapshotLike {
    turnIndex: string;
    systemPrompt?: string;
}
/**
 * Build the `message` / `turn` / `event` timeline entries from a driver's pull surfaces
 * (`getRawHistory()` / `getTurnSnapshots()` / `getMetaEvents(sessionKey)`). Order within the array
 * is message → turn → event; the caller (`assembleDebugLog`) sorts the whole timeline by timestamp,
 * so this ordering only sets the co-timestamp tie-break. Pure.
 */
export declare function buildTimelineEntries(input: {
    turnSnapshots: readonly TurnSnapshotLike[];
    messages: readonly ChatMessage[];
    metaEvents: readonly MetaEvent[];
}): DiagnosticEntry[];
//# sourceMappingURL=build-timeline-entries.d.ts.map