import type { HybridTimestamp } from '../../types/time.js'; export type AgentDID = string; export type PrincipalDID = string; export type Ed25519Signature = string; /** Duration in milliseconds. */ export type Duration = number; export type ProvisionalStatus = 'provisional' | 'promoted' | 'withdrawn'; export type PromotionKind = 'principal_signature' | 'counter_signature' | 'dead_man_elapsed'; export interface PromotionEvent { kind: PromotionKind; promoted_at: HybridTimestamp; /** Principal (for principal_signature), counterparty agent (for * counter_signature), or the system (for dead_man_elapsed). */ promoter: PrincipalDID | AgentDID; /** Ed25519 signature over the canonical promotion payload. Empty * string for dead_man_elapsed (no signer). */ promoter_signature: Ed25519Signature; /** The PromotionPolicy.id that this event satisfies. */ policy_reference: string; } export interface ProvisionalStatement { id: string; version: '1.0'; author: AgentDID; author_principal: PrincipalDID; content: string; status: ProvisionalStatus; created_at: HybridTimestamp; /** Optional dead-man deadline. If reached without explicit promotion * or withdrawal, the statement auto-transitions to "withdrawn". */ dead_man_expires_at?: HybridTimestamp; author_signature: Ed25519Signature; promotion?: PromotionEvent; } export interface PromotionPolicy { id: string; /** Principals whose signatures count toward the threshold. */ required_signers: PrincipalDID[]; /** m-of-n: minimum number of signatures from required_signers. */ threshold: number; /** Maximum time from created_at to promoted_at, in milliseconds. */ max_time_to_promote: Duration; } export interface PromotionVerifyResult { valid: boolean; errors: string[]; } //# sourceMappingURL=types.d.ts.map