/** * Usage sink (ISP + DIP): the meter depends only on this one tiny method, so * swapping the JSONL file for a DB, HTTP endpoint, or UI stream later is a * one-class change with no meter or call-site edits. */ export interface UsageSink { /** Append one already-serialized record. Implementations must not throw. */ write(line: string): void; } /** * Default sink: appends one JSONL line per event to * `/logs/usage/usage-YYYYMMDD.jsonl` (one file per day). Best-effort — * any filesystem error is swallowed so telemetry never breaks a real call. */ export declare class JsonlUsageSink implements UsageSink { private readonly dir; /** Dirs already `mkdir`-ed this process, so we hit the FS once, not per write. */ private readonly ensured; constructor(dir?: string); /** Create the target dir at most once per process; swallow any FS error. */ private ensureDir; write(line: string): void; } //# sourceMappingURL=sink.d.ts.map