import type { WorktreeOptions, WorktreeResult } from './types.js';
export type { WorktreeOptions, WorktreeResult };
export { branchExists, createBaseBranchIfMissing, localBranchExists, remoteBranchExists, type CreateBaseBranchIfMissingConfig, } from './clone-base-branch.js';
export declare class CloneManager {
    private static generateTimestamp;
    static resolveCloneBaseDir(projectDir: string): string;
    private static isParentWritable;
    private static resolveClonePath;
    private static resolveAvailableClonePath;
    private static resolveBranchName;
    static resolveBaseBranch(projectDir: string, explicitBaseBranch?: string): {
        branch: string;
        fetchedCommit?: string;
    };
    createSharedClone(projectDir: string, options: WorktreeOptions): WorktreeResult;
    createSharedCloneAbortable(projectDir: string, options: WorktreeOptions, abortSignal?: AbortSignal): Promise<WorktreeResult>;
    createTempCloneForBranch(projectDir: string, branch: string): WorktreeResult;
    removeClone(clonePath: string): void;
    saveCloneMeta(projectDir: string, branch: string, clonePath: string): void;
    removeCloneMeta(projectDir: string, branch: string): void;
    cleanupOrphanedClone(projectDir: string, branch: string): void;
}
export declare function createSharedClone(projectDir: string, options: WorktreeOptions): WorktreeResult;
export declare function createSharedCloneAbortable(projectDir: string, options: WorktreeOptions, abortSignal?: AbortSignal): Promise<WorktreeResult>;
export declare function createTempCloneForBranch(projectDir: string, branch: string): WorktreeResult;
export declare function removeClone(clonePath: string): void;
export declare function saveCloneMeta(projectDir: string, branch: string, clonePath: string): void;
export declare function removeCloneMeta(projectDir: string, branch: string): void;
export declare function cleanupOrphanedClone(projectDir: string, branch: string): void;
export declare function resolveBaseBranch(projectDir: string, explicitBaseBranch?: string): {
    branch: string;
    fetchedCommit?: string;
};
export declare function resolveCloneBaseDir(projectDir: string): string;
//# sourceMappingURL=clone.d.ts.map