import type { MultiModelConfig } from '@zhixuan92/multi-model-agent-core'; interface LogsDeps { /** * Only `diagnostics` is read (the log directory and the enabled flag), so only `diagnostics` is * demanded. Asking for a whole `MultiModelConfig` made every caller that does not have one — * which is every test — assemble a fake config and cast it past the compiler three times over. */ config: Pick; homeDir?: string; follow?: boolean; batchId?: string; /** Polling interval when --follow; defaults to 300ms. */ pollMs?: number; /** Max time to wait for the log file to appear under --follow; defaults to 30s. */ waitForLogMs?: number; stdout?: (s: string) => boolean; stderr?: (s: string) => boolean; } /** * Where the tail should read from on the next poll. * * Two things can move the target out from under a `--follow` session, and both used to silence it * permanently (audit M3-3): * - ROTATION. The writer switches to `mma-.jsonl` at UTC midnight, so a session started * the previous day kept tailing a file nothing writes to any more. * - TRUNCATION. A file that shrank left `offset` past its end, and `size <= offset` then skipped * every subsequent poll forever. * * Pure so the decision is testable without racing the endless poll loop. */ export declare function nextFollowTarget(current: { path: string; offset: number; }, resolvedPath: string, resolvedExists: boolean, size: number): { path: string; offset: number; }; export declare function runLogs(deps: LogsDeps): Promise; export {}; //# sourceMappingURL=logs.d.ts.map