export interface ForkResult {
    success: boolean;
    forkUrl: string;
    forkOwner: string;
    forkName: string;
    originalRepo: string;
    message: string;
    nextSteps: string[];
}
export interface ForkOptions {
    organization?: string;
    name?: string;
    defaultBranchOnly?: boolean;
}
export declare class RepositoryForker {
    private permissionChecker;
    constructor(githubToken?: string);
    forkRepository(originalOwner: string, originalName: string, options?: ForkOptions): Promise<ForkResult>;
    private checkExistingFork;
    private createFork;
    private waitForForkReady;
    private getGitHubToken;
    canForkRepository(owner: string, name: string): Promise<{
        canFork: boolean;
        reason: string;
        alternatives: string[];
    }>;
    getForkInfo(forkOwner: string, forkName: string): Promise<{
        isFork: boolean;
        parentRepo?: string;
        isUpToDate?: boolean;
        behindBy?: number;
        aheadBy?: number;
    }>;
    forkRepositoryDryRun(originalOwner: string, originalName: string, options?: ForkOptions, mockUser?: {
        login: string;
        name: string;
    }): Promise<ForkResult>;
}
//# sourceMappingURL=repositoryForker.d.ts.map