import type { GitCommandResult } from "../repository/git.js"; import { type SyntheticObjectPlan, type SyntheticPublication, type SyntheticScope } from "./synthetic.js"; import type { CoordinationCommitGuard, CoordinationCommitIntent, CoordinationTransport, WriteRecorder } from "./store.js"; export interface SyntheticCandidate { ref: string; head: string; expected: string | null; intent: CoordinationCommitIntent; } export interface SyntheticApplied { candidate: SyntheticCandidate; observedHead: string; } export interface SyntheticWriteResult { candidate: SyntheticCandidate; pushed?: GitCommandResult; applied?: SyntheticApplied; error?: string; } export type SyntheticPushGuard = (candidate: SyntheticCandidate) => WriteRecorder; export type SyntheticPreparation = Readonly<{ kind: "prepared-synthetic-publication"; }>; /** Preparation owns no dispatch lock or network attempt; the original ticket still governs the later send. */ export declare function prepareSyntheticPublication(transport: CoordinationTransport, input: SyntheticObjectPlan, publication: SyntheticPublication, beforeCommit: CoordinationCommitGuard, beforePush: SyntheticPushGuard, validateParent: (directory: string) => void, readback: (candidate: SyntheticCandidate) => SyntheticApplied): SyntheticPreparation; /** No caller-supplied candidate, transport, scope or replay. Git still decides the exact-old-SHA condition. */ export declare function dispatchSyntheticPublication(handle: SyntheticPreparation): SyntheticApplied; /** Ordinary publications use the same two boundaries consecutively, without a scheduling callback. */ export declare function publishSyntheticObject(...args: Parameters): SyntheticApplied; export declare function validateSourceAncestry(directory: string, plans: SyntheticObjectPlan[], head: string): string[]; /** Read-only recovery accepts only the approved source graph, never project or control ancestry. */ export declare function recoverSourceFixture(transport: CoordinationTransport, scope: SyntheticScope, candidate: SyntheticCandidate): SyntheticApplied; export declare function runApprovedSourceFixture(transport: CoordinationTransport, scope: SyntheticScope, fixtureId: string, beforeCommit: CoordinationCommitGuard, beforePush: SyntheticPushGuard): SyntheticApplied; //# sourceMappingURL=publication.d.ts.map