import { AuditEvent, UserDataAdapter } from "@authhero/adapter-interfaces";
import { EventDestination } from "../outbox-relay";
interface FinalizationTask {
    tenantId: string;
    userId: string;
    timestamp: string;
}
/**
 * Side-effect destination that flips `user.registration_completed_at` once
 * the upstream hook destinations (webhooks, code hooks) have all succeeded
 * for a `hook.post-user-registration` event.
 *
 * Must be listed AFTER the destinations that actually deliver the hook so
 * that a delivery failure aborts the loop before the flag is set — the
 * relay then retries the entire event, and on a subsequent successful pass
 * the finalizer sets the flag.
 *
 * The flag is read by `postUserLoginHook` to decide whether to re-enqueue
 * the event on the next login (self-healing recovery).
 */
export declare class RegistrationFinalizerDestination implements EventDestination {
    name: string;
    private users;
    constructor(users: UserDataAdapter);
    accepts(event: AuditEvent): boolean;
    transform(event: AuditEvent): FinalizationTask;
    deliver(tasks: FinalizationTask[]): Promise<void>;
}
export {};
