import type { SourceAnchor } from "../../../core/domain/facts/anchor.js"; import type { Destination, OutboundOperationFact, Provenance } from "../../../core/domain/facts/fact.js"; import type { ValueIr } from "../../../core/domain/facts/value-ir.js"; export type DraftOutboundFact = Omit; /** The join key of a shared-library half; both members are null without one. */ export type JoinKey = { readonly moduleId: string; readonly calleeOperation: OutboundOperationFact["callee_operation"]; }; export type OperationDraft = { readonly provenance: Provenance; readonly method: ValueIr; readonly path: ValueIr; readonly destinations: readonly Destination[]; readonly ownerOperation: string; readonly anchor: SourceAnchor; readonly join?: JoinKey | null; }; /** * Assembles one outbound fact per claimed site. A site is emitted even when * extraction left fields unresolved, because project-map:INV-005 forbids * dropping a claimed site and forbids falling through to a lower tier. */ export declare function outboundDraft(draft: OperationDraft): DraftOutboundFact;