import { type CaptureEvent } from "../capture-store.js"; import { type ResolvedSpeakerIdentity } from "./addressing.js"; export declare const INPUT_LIVE_FILE: string; export declare const AUDIO_LIVE_FILE: string; /** Trigger events accumulated between eval cycles; drained by the pipeline. */ export declare const pendingTriggers: CaptureEvent[]; /** How stale a RECOVERED (backfilled) mic line may be and still trigger. */ export declare const RECOVERED_TRIGGER_MAX_AGE_MS: number; export declare function tailLines(filePath: string, maxLines: number): string[]; export declare function isTriggerEvent(event: CaptureEvent): boolean; export declare function isDirectKoiInvocation(triggers: CaptureEvent[], resolveIdentity?: (audioPath: string | undefined) => ResolvedSpeakerIdentity | null): boolean; export declare function formatTriggersForEval(triggers: CaptureEvent[]): string; export declare function extractChatMessage(triggers: CaptureEvent[], directKoi: boolean, gateSummary: string, triggerText: string): string; /** Start tailing from the current end of each live file — no backlog replay. */ export declare function initTailOffsets(): void; /** One poll tick: pull new triggers from the live files + capture store. */ export declare function pollTriggerSources(): void;