import { type RepositoryPackageSnapshot } from './repositoryPackage.js'; export type RepositoryCandidateState = 'accepted' | 'processing' | 'published' | 'blocked'; export interface RepositoryCandidateScope { organizationId: string; workspaceId: string; repositoryBindingId: string; repositoryAgentId: string; } export interface RepositoryCandidateTransport { signedGet(route: string): Promise>; signedPost(route: string, body: unknown): Promise>; } export type RepositoryCandidateReceipt = { candidateId: string; operationId: string; snapshotHash: string; state: RepositoryCandidateState; releaseId: string | null; }; type CandidateOutbox = { schema: 'dharma.repository-candidate-outbox/v1'; scope: RepositoryCandidateScope; operationId: string; sourceManifestHash: string; snapshotHash: string; consolidation: { mode: 'initial_repository' | 'repository_update'; includeApprovedOutputs: true; requireAtlasAssociation: true; expectedLatestSourceFingerprint?: string; }; candidateId: string | null; state: 'pending_upload' | RepositoryCandidateState; releaseId: string | null; }; export declare function synchronizeRepositoryCandidate(input: { transport: RepositoryCandidateTransport; outboxRoot: string; scope: RepositoryCandidateScope; snapshot: RepositoryPackageSnapshot; initialRepository: boolean; expectedLatestSourceFingerprint?: string; }): Promise; export declare function pollRepositoryCandidate(input: { transport: Pick; outboxRoot: string; scope: RepositoryCandidateScope; }): Promise; export declare function adoptRepositoryCandidate(input: { outboxRoot: string; scope: RepositoryCandidateScope; sourceManifestHash: string; consolidationMode: CandidateOutbox['consolidation']['mode']; candidate: RepositoryCandidateReceipt; }): Promise; export {}; //# sourceMappingURL=repositoryCandidateSync.d.ts.map