import type { Client } from "@libsql/client"; import { type FederationGhClient, type FederationRepoVisibility } from "../../util/gh-federation.js"; import { type GitRunOptions, type GitRunResult } from "../../util/git-run.js"; import { type VaultRow } from "../../registry/repo.js"; import { type PublicationPermissionObserver } from "./publication-permission.js"; export type GitRunner = (args: readonly string[], opts: GitRunOptions) => Promise; export declare function verifyExactPublishedRef(args: { git: GitRunner; cwd: string; remoteUrl: string; remoteRef: string; expectedHead?: string; }): Promise; export interface MaterializeVaultOptions { handle: string; repoOwner?: string | undefined; repoTargetKind?: "user" | "org" | undefined; repoOwnerAuthority?: "effective-owned-destination" | "legacy-origin-hint" | "local-only" | undefined; createRemoteIfMissing?: boolean | undefined; push?: boolean | undefined; setRemote?: boolean | undefined; visibility?: FederationRepoVisibility | undefined; ghClient?: FederationGhClient | undefined; runGit?: GitRunner | undefined; permissionObserver?: PublicationPermissionObserver | undefined; permissionAttemptId?: string | undefined; registryDb?: Client | undefined; repoName?: string | undefined; } export interface MaterializeVaultResult { vaultName: string; repoName: string; visibility: FederationRepoVisibility; gitInitialized: boolean; committed: boolean; remoteSet: boolean; repoCreated: boolean; pushed: boolean; remoteCoordinate: string | null; warnings: string[]; skipped: boolean; skippedReason?: string; } export declare function establishPublishedVaultTracking(args: { vault: VaultRow; canonicalUrl: string; git: GitRunner; registryDb: Client; }): Promise; export declare function materializeVaultPublishable(vault: VaultRow, opts: MaterializeVaultOptions): Promise; export declare function normalizeGitHubRepoCoordinate(url: string): string | null; export interface CommitPodRepoOptions { push?: boolean | undefined; runGit?: GitRunner | undefined; permissionObserver?: PublicationPermissionObserver | undefined; permissionActor?: string | undefined; permissionRepository?: string | undefined; permissionAttemptId?: string | undefined; } export interface CommitPodRepoResult { committed: boolean; pushed: boolean; warnings: string[]; } export declare function commitPodRepo(podDir: string, message: string, opts?: CommitPodRepoOptions): Promise; //# sourceMappingURL=vault-publish.d.ts.map