import type { HybridTimestamp } from '../../types/time.js'; export type AgentDID = string; export type PrincipalDID = string; export type ContextID = string; export type Ed25519Signature = string; /** A binding artifact-shaped object that may carry citations. */ export interface CitingArtifact { citations?: ArtifactCitation[]; [k: string]: unknown; } /** One citation referenced from an artifact. Points at a receipt by id, * repeats the content + principal so tampering with the artifact alone * cannot silently swap out what was cited. */ export interface ArtifactCitation { receipt_id: string; cited_principal: PrincipalDID; citation_content: string; } export interface AttributionReceipt { /** sha256 hex of the canonical unsigned core (no signatures included). */ id: string; version: '1.0'; citer: AgentDID; /** Public key (hex) of the citer — used to verify citer_signature offline. */ citer_public_key: string; cited_principal: PrincipalDID; /** Public key (hex) of the cited principal — used to verify the consent * signature when it is added. */ cited_principal_public_key: string; /** The quoted or paraphrased claim being attributed to cited_principal. */ citation_content: string; /** The binding artifact this citation is intended for (charter id, * settlement id, completion receipt id, etc). A receipt is scoped to * a single binding context. */ binding_context: ContextID; created_at: HybridTimestamp; expires_at: HybridTimestamp; /** Ed25519 signature by the citer over the unsigned core. */ citer_signature: Ed25519Signature; /** Ed25519 signature by the cited principal over the unsigned core. * Present once consent has been granted. */ cited_principal_signature?: Ed25519Signature; } export interface AttributionConsentResult { valid: boolean; reason?: string; } //# sourceMappingURL=types.d.ts.map