import type { Client } from "@libsql/client"; import { type PublicationCapability } from "../../util/permission-observation.js"; import { type GithubPublicationCoordinate } from "../../util/publication-coordinate.js"; import { type CanonicalVaultPublicationAuthority } from "./destination-policy-service.js"; import { type PublicationPermissionObserver } from "./publication-permission.js"; export interface FreshPublicationPermissionArgs { capability: PublicationCapability; target: string; repository: string; actor: string; attemptId: string; policyEpoch: number; permissionObserver?: PublicationPermissionObserver; publicationSubject?: { identity: string; podRoot?: string; }; action: (context: CanonicalVaultPublicationAttemptContext) => Promise; } export declare function withFreshPublicationPermission(args: FreshPublicationPermissionArgs): Promise; export interface CanonicalVaultPublicationAttemptContext { runOutwardChild(child: () => Promise): Promise; } export interface CanonicalPodPublicationAuthority { podRid: string; handle: string; destination: GithubPublicationCoordinate; } export declare function resolveCanonicalPodPublicationAuthority(handle: string, podRid: string): CanonicalPodPublicationAuthority; export interface CanonicalPodPublicationAttemptArgs { authority: CanonicalPodPublicationAuthority; podYonPath: string; podRoot: string; actor: string; attemptId: string; permissionObserver?: PublicationPermissionObserver; action: (context: CanonicalVaultPublicationAttemptContext) => Promise; } export declare function withCanonicalPodPublicationAttempt(args: CanonicalPodPublicationAttemptArgs): Promise; export interface CanonicalVaultPublicationAttemptArgs extends Omit, "policyEpoch" | "action"> { db?: Client; vaultRid: Uint8Array; podRid: string; podRoot?: string; authority: CanonicalVaultPublicationAuthority; expectedRepository: string; action: (context: CanonicalVaultPublicationAttemptContext) => Promise; } export declare function withCanonicalVaultPublicationAttempt(args: CanonicalVaultPublicationAttemptArgs): Promise; //# sourceMappingURL=publication-authority.d.ts.map