import { type DestinationKind, type DestinationPolicyRecordV1, type DestinationPolicyState, type DestinationSource, type DestinationSubjectKind, type DestinationTargetKind } from "../../registry/destination-policy.js"; import { type Hlc } from "../../util/hlc.js"; import { type AppendLedgerRecordResult } from "../../yon/ledger-write.js"; import { type DestinationPolicyLockOptions } from "./destination-policy-lock.js"; export declare class ForeignDestinationPolicyError extends Error { readonly errorCode = "foreign-destination-policy"; } export declare class DestinationPolicyChainError extends Error { readonly errorCode = "invalid-destination-policy-chain"; } export declare class DestinationPolicyLossError extends Error { readonly errorCode = "destination-policy-loss-detected"; } export interface DestinationPolicyObservationEntry { key: string; policyEpoch: number; hlc: string; writerId: string; seq: number; digest: string; } export interface DestinationPolicyObservation { schemaMajor: 1 | 2; podRid: string; winners: readonly DestinationPolicyObservationEntry[]; } export interface AppendDestinationPolicyArgs { podRid: string; subjectKind: DestinationSubjectKind; subjectRid: string; destinationKind: DestinationKind; targetOwner: string | null; targetKind: DestinationTargetKind | null; repositoryName?: string | null; source: DestinationSource; state?: DestinationPolicyState; policyEpoch?: number; writerVersion: string; recordedAt?: string; podRoot?: string; writerId?: string; hlc?: Hlc; seq?: number; hlcPath?: string; observationPath?: string; priorObservation?: DestinationPolicyObservation; lockOptions?: DestinationPolicyLockOptions; } export declare function getDestinationPolicyLedgerDir(podRoot?: string): string; export declare function getDestinationPolicyLockPath(podRoot?: string): string; export declare function getDestinationPolicyAttemptLockPath(subjectKind: DestinationSubjectKind, subjectRid: string, podRoot?: string): string; export declare function getPublicationAttemptLockPath(subjectIdentity: string, podRoot?: string): string; export declare function getDestinationPolicyObservationPath(podRid: string): string; export declare function readAllDestinationPolicyRecords(expectedPodRid: string, podRoot?: string): DestinationPolicyRecordV1[]; export declare function foldDestinationPolicyWinners(records: readonly DestinationPolicyRecordV1[]): Map; export declare function observeDestinationPolicyLedger(expectedPodRid: string, podRoot?: string, observationPath?: string): DestinationPolicyObservation; export declare function readVerifiedDestinationPolicyWinners(expectedPodRid: string, podRoot?: string, observationPath?: string): Map; export declare function readObservedDestinationPolicyWinnersReadOnly(expectedPodRid: string, podRoot?: string, observationPath?: string): Map; export declare function readVerifiedDestinationPolicyWinnersUnderLock(expectedPodRid: string, podRoot?: string, observationPath?: string): Map; export declare function appendDestinationPolicyRecord(args: AppendDestinationPolicyArgs): AppendLedgerRecordResult; export declare function appendDestinationPolicyRecordUnderLock(args: AppendDestinationPolicyArgs): AppendLedgerRecordResult; export declare function assertNoObservedPolicyLoss(prior: DestinationPolicyObservation, expectedPodRid: string, current: ReadonlyMap): void; //# sourceMappingURL=destination-policy-ledger.d.ts.map