import type { HybridTimestamp } from '../../types/time.js';
import type { ProvisionalStatement, PromotionEvent, PromotionPolicy, PromotionKind, PrincipalDID, AgentDID } from './types.js';
/** Canonical payload a promoter signs. Verifiers reconstruct this to
 *  check PromotionEvent.promoter_signature. */
export declare function promotionSigningPayload(opts: {
    statement_id: string;
    kind: PromotionKind;
    promoted_at: HybridTimestamp;
    promoter: PrincipalDID | AgentDID;
    policy_reference: string;
}): string;
/** Promote a provisional statement into binding status. The caller
 *  provides a PromotionEvent that must satisfy the PromotionPolicy
 *  (see verifyPromotion). Dead-man elapsed events do NOT promote —
 *  use processDeadMan for that path, which sets status to "withdrawn". */
export declare function promoteStatement(statement: ProvisionalStatement, promotion_event: PromotionEvent, policy: PromotionPolicy): ProvisionalStatement;
/** If the dead-man deadline has elapsed on a still-provisional
 *  statement, transition it to "withdrawn". Absence of confirmation is
 *  not consent. Idempotent on already-terminal statements. */
export declare function processDeadMan(statement: ProvisionalStatement, opts?: {
    now?: number;
    gatewayId?: string;
}): ProvisionalStatement;
//# sourceMappingURL=promote.d.ts.map