import type { ContactRequestLifecyclePhase } from '@canonmsg/backend-contracts'; import type { CanonContactRequest } from './types.js'; export type TerminalContactRequestLifecyclePhase = Extract; export declare function terminalContactRequestLifecyclePhase(phase: ContactRequestLifecyclePhase | string): TerminalContactRequestLifecyclePhase | null; export declare function contactRequestLifecycleEventKey(request: Pick): string | null; export declare function formatContactRequestLifecycleEvent(request: CanonContactRequest): string | null; export declare function formatPendingContactLifecycleContext(requests: ReadonlyArray): string | null; export interface ContactLifecycleReconcileResult { recorded: number; duplicate: number; ignored: number; } /** Pure shared reconciliation; storage and delivery are adapter-owned. */ export declare function reconcileContactLifecycleEvents(input: { requests: ReadonlyArray; requesterId: string; record: (request: CanonContactRequest) => boolean | Promise; }): Promise;