import type { Client } from "@libsql/client"; import { type ForeignVaultSource } from "../registry/repo.js"; import { type JoinResult } from "./join.js"; export interface CloneOptions { url: string; name?: string | undefined; parentDir?: string | undefined; toMesh?: string | undefined; registryDb?: Client | undefined; nowIso?: string | undefined; detachOrigin?: boolean | undefined; autoRegisterExternalMesh?: boolean | undefined; preserveRid?: boolean | undefined; targetSubdir?: string | undefined; markSubscribed?: boolean | undefined; foreignSource?: ForeignVaultSource | undefined; routeForeignToBucket?: boolean | undefined; autoIndex?: boolean | undefined; } export interface CloneResult extends JoinResult { cloneTargetPath: string; meshAssignment: { meshRidHex: string; meshName: string; freshRidApplied: boolean; externalMeshAutoRegistered: boolean; } | null; originDetached: boolean | null; } export declare class CloneTargetMeshNotFoundError extends Error { readonly errorCode = "clone-target-mesh-not-found"; readonly meshName: string; constructor(meshName: string); } export declare class VaultIdentityMismatchError extends Error { readonly errorCode = "vault-identity-mismatch"; readonly ref: string; readonly declaredName: string; constructor(ref: string, declaredName: string, target: string); } export declare class PreserveRidRequiresTargetMeshError extends Error { readonly errorCode = "preserve-rid-requires-target-mesh"; constructor(); } export declare function resolveEffectiveCloneOptions(opts: CloneOptions): Promise; export declare function deriveForeignCloneOwner(url: string, canonicalName: string): string; export declare function cloneVaultFlow(rawOpts: CloneOptions): Promise; export declare function deriveNameFromUrl(url: string): string; //# sourceMappingURL=clone.d.ts.map