import type { Logger } from './types.js';
export interface AuditState {
    /** Feed a single parsed JSONL line. Returns log lines to emit (zero or more). */
    ingest(line: string, fallbackTsMs: number): string[];
    /** Drop the watcher's pending state. Returns orphan log lines (tool_use with
     * no matching tool_result by teardown). */
    teardown(): string[];
}
interface AuditOptions {
    sessionId: string;
    logger: Logger;
}
export declare function createAuditState(opts: AuditOptions): AuditState;
export interface AuditHandle {
    /** Stop watching, drain orphan log lines. Idempotent. */
    stop(): void;
}
export interface AuditRegistry {
    /** Attach a watcher for a public-role session. Idempotent on sessionId. */
    attach(sessionId: string, jsonlPath: string): void;
    /** Detach one session's watcher, draining orphans. */
    detach(sessionId: string): void;
    /** Detach all (manager shutdown). */
    drain(): void;
}
export interface RegistryDeps {
    logger: Logger;
    /** Polling interval for `watchFile`. Default 250ms — same as `/log?follow=1`. */
    pollIntervalMs?: number;
}
export declare function createAuditRegistry(deps: RegistryDeps): AuditRegistry;
export {};
//# sourceMappingURL=public-tool-audit.d.ts.map