/**
 * FormDataAuditor — invisible component that diffs `form_data` between
 * renders and records each changed field as a `manual` audit entry.
 *
 * Coalescing strategy: controlled inputs fire on every keystroke, which
 * would produce one audit entry per character. Instead, we debounce per
 * field — when a field changes we (re)start a per-field timer, and once
 * the user has been idle for `debounce_ms` we record ONE entry whose
 * `prev_value` is the last committed value and whose `new_value` is the
 * latest current value. The result is one entry per typing burst.
 *
 * On unmount any pending timers are flushed so we don't lose unfinished
 * edits. Internal keys prefixed with `__` (file attachments,
 * clarification storage, etc.) are ignored.
 *
 * Renders nothing.
 */
export interface FormDataAuditorProps {
    form_data: Record<string, unknown> | undefined;
    current_user?: string;
    /**
     * Milliseconds of idle time after the last change before an entry is
     * recorded. Keystrokes within the window are coalesced into a single
     * audit entry. Defaults to 750ms — enough for normal typing pauses but
     * short enough that tabbing out feels immediate.
     */
    debounce_ms?: number;
}
export declare function FormDataAuditor({ form_data, current_user, debounce_ms, }: FormDataAuditorProps): null;
//# sourceMappingURL=auditor.d.ts.map