/**
 * AuditStore — append-only JSONL audit log writer.
 *
 * Compliance requirements:
 * - One record per line (JSONL / newline-delimited JSON)
 * - Files rotate daily: audit-YYYY-MM-DD.jsonl
 * - Entries are flushed to disk immediately after each write (no buffering)
 * - Files are never deleted or truncated, only appended
 */
import type { AuditEntry } from "./audit-types.js";
export type AuditStoreOptions = {
    /** Directory to store audit log files. Default: ~/.minion/audit/ */
    dir: string;
    /** Whether the audit store is active. When false, writes are no-ops. */
    enabled: boolean;
};
export declare class AuditStore {
    private readonly dir;
    private readonly enabled;
    /**
     * Internal write queue that serializes appends so that concurrent
     * fire-and-forget calls from the audit plugin are written in the
     * order they were enqueued — not in whatever order their I/O
     * happens to settle.
     */
    private writeChain;
    constructor(opts: AuditStoreOptions);
    private getFilePath;
    /**
     * Append one AuditEntry to today's log file.
     *
     * Writes are serialized through an internal queue so that concurrent
     * fire-and-forget calls (e.g. from the audit plugin's after_tool_call
     * hook) are written in enqueue order, not in I/O-settlement order.
     *
     * Each write is flushed to disk immediately (compliance: no buffering).
     * Creates the log directory if it does not exist.
     */
    append(entry: AuditEntry): Promise<void>;
    private writeEntry;
    /**
     * Read all AuditEntries with timestamps in [from, to].
     *
     * Iterates daily log files covering the range. Skips missing files
     * (days with no audit activity). Skips malformed lines silently.
     */
    readRange(from: Date, to: Date): Promise<AuditEntry[]>;
}
/** Create an AuditStore with defaults suitable for production use. */
export declare function createAuditStore(opts?: Partial<AuditStoreOptions>): AuditStore;
