export declare const HANDOFF_RUN_SCHEMA_VERSION = "onboard-client-handoff-run-v1"; export declare const HANDOFF_PACKET_SCHEMA_VERSION = "onboard-client-handoff-packet-v1"; export declare const HANDOFF_PACKET_FIELD_KEYS: readonly ["payerAndPackage", "seatCount", "customerPointPerson", "senderSet", "successMetric", "promisesAndConstraints", "handoffOwner", "openQuestions", "nextLaunchCallHandoff"]; export type HandoffPacketFieldKey = typeof HANDOFF_PACKET_FIELD_KEYS[number]; export type HandoffPacketFieldStatus = "confirmed" | "inferred" | "unknown"; export interface HandoffEvidenceCitation { sourceType: "lightfield" | "gmail" | "grain" | "sellable_inbox" | "slack"; sourceId: string; sourceRevision: string; citation: string; associationFingerprint: string; } export interface HandoffPacketField { status: HandoffPacketFieldStatus; confidence: number; value?: unknown; owner?: string; citations: HandoffEvidenceCitation[]; } export interface HandoffPacketDraft { fields: Record; } export type HandoffRunEventInput = { type: "observation"; observationId: string; summary: string; } | { type: "attempt"; attemptId: string; strategyFingerprint: string; summary: string; } | { type: "evidence"; evidenceId: string; citation: HandoffEvidenceCitation; } | { type: "verifier"; verifierId: string; result: "passed" | "failed"; summary: string; }; export declare const HANDOFF_PACKET_ACTIONS: readonly ["create_run", "append_observation", "append_attempt", "append_evidence", "write_packet_revision", "append_verifier", "get_run"]; export type HandoffPacketAction = typeof HANDOFF_PACKET_ACTIONS[number]; export interface HandoffPacketCommandInput { action: HandoffPacketAction; runId: string; associationFingerprint?: string; associationRevisions?: Record; event?: HandoffRunEventInput; packet?: HandoffPacketDraft; expectedRevision?: number; } type PacketErrorCode = "handoff_packet_input_invalid" | "handoff_packet_run_drift" | "handoff_packet_event_drift" | "handoff_packet_revision_conflict" | "handoff_packet_fields_invalid" | "handoff_packet_field_invalid" | "handoff_packet_citation_required" | "handoff_packet_unknown_owner_required" | "handoff_packet_cross_association" | "handoff_packet_source_revision_mismatch" | "handoff_packet_unsafe_content" | "handoff_packet_citation_invalid" | "handoff_packet_store_insecure" | "handoff_packet_store_unreadable" | "handoff_packet_store_busy" | "handoff_packet_hash_mismatch"; export type HandoffPacketCommandResult = { ok: true; kind: "handoff_run_state"; action: "create_run" | "get_run"; runId: string; currentRevision: number; eventSequence: number; runHash: string; packetHash: string | null; associationFingerprint: string; associationRevisionsHash: string; replayed: boolean; events?: unknown[]; } | { ok: true; kind: "handoff_run_event"; action: "append_observation" | "append_attempt" | "append_evidence" | "append_verifier"; runId: string; currentRevision: number; eventSequence: number; eventHash: string; replayed: boolean; } | { ok: true; kind: "handoff_packet_revision"; action: "write_packet_revision"; runId: string; currentRevision: number; packetHash: string; packetRef: string; diff: Array<{ field: HandoffPacketFieldKey; beforeHash: string | null; afterHash: string; }>; eventSequence: number; replayed: boolean; writeAttempted: boolean; } | { ok: false; kind: "handoff_packet_rejected"; code: PacketErrorCode; action: HandoffPacketAction; runId: string; currentRevision: null; packetHash: null; eventSequence: null; writeAttempted: false; }; interface PacketStoreOptions { adminHome: string; now?: () => string; } export declare function adminOnboardClientHandoffPacket(input: HandoffPacketCommandInput, options: PacketStoreOptions): HandoffPacketCommandResult; export {};