import { type Snapshot } from "@lix-js/fs";
export declare function mockRepo({ fromSnapshot, repoOptions, }?: {
    fromSnapshot?: Snapshot;
    repoOptions?: {
        experimentalFeatures: {
            lazyClone: boolean;
            lixCommit: boolean;
        };
    };
}): Promise<{
    _emptyWorkdir: () => Promise<string[]>;
    _checkOutPlaceholders: (args_0?: {
        materializeGitignores?: boolean | undefined;
        preload?: string[] | undefined;
    } | undefined) => Promise<{
        gitignoreFiles: string[];
    }>;
    _add: (filepath: string | string[]) => Promise<void>;
    _remove: (filepath: string) => Promise<void>;
    _isoCommit: (args_0: {
        author: any;
        message: string;
    }) => Promise<string>;
    read?: ((path: string) => Promise<string>) | undefined;
    write?: ((path: string, content: string) => Promise<void>) | undefined;
    listDir?: ((path: string) => Promise<string[]>) | undefined;
    _experimentalFeatures: {
        lixFs?: boolean | undefined;
        lazyClone?: boolean | undefined;
        lixMerge?: boolean | undefined;
        lixCommit?: boolean | undefined;
    };
    _rawFs: import("@lix-js/fs").NodeishFilesystem;
    nodeishFs: import("@lix-js/fs").NodeishFilesystem;
    commit: (args_0: {
        author?: any;
        message: string;
        include: string[];
    }) => Promise<string>;
    status: (filepath: string) => Promise<string>;
    statusList: (statusArg?: Pick<import("./git/status-list.js").StatusArgs, "filter" | "filepaths" | "includeStatus"> | undefined) => Promise<[string, "unknown" | "unmodified" | "ignored" | "*added" | "*added2" | "added" | "*modified" | "*modified2" | "modified" | "*deleted" | "deleted" | "*absent" | "*undeletemodified" | "*unmodified" | "*undeleted"][]>;
    forkStatus: () => Promise<{
        error: any;
        ahead?: undefined;
        behind?: undefined;
        conflicts?: undefined;
    } | {
        ahead: number;
        behind: number;
        conflicts: {
            data: string[];
            code: string;
        } | undefined;
        error?: undefined;
    }>;
    getMeta: () => Promise<{
        error: any;
        allowForking?: undefined;
        name?: undefined;
        isPrivate?: undefined;
        isFork?: undefined;
        isInstalled?: undefined;
        permissions?: undefined;
        owner?: undefined;
        parent?: undefined;
    } | {
        allowForking: any;
        name: any;
        isPrivate: any;
        isFork: any;
        isInstalled: boolean;
        permissions: {
            admin: any;
            push: any;
            pull: any;
        };
        owner: {
            type: any;
            name: any;
            email: any;
            login: any;
        };
        parent: {
            url: string;
            fullName: any;
        } | undefined;
        error?: undefined;
    }>;
    listRemotes: () => Promise<{
        remote: string;
        url: string;
    }[] | undefined>;
    log: (cmdArgs: {
        depth: number;
        filepath?: string | undefined;
        ref?: string | undefined;
        since?: Date | undefined;
        force?: boolean | undefined;
        follow?: boolean | undefined;
    }) => Promise<import("../vendored/isomorphic-git/index.js").ReadCommitResult[]>;
    getOrigin: () => Promise<string | undefined>;
    getBranches: () => Promise<string[] | undefined>;
    getCurrentBranch: () => Promise<string | undefined>;
    getFirstCommitHash: () => Promise<string | undefined>;
    checkout: (args_0: {
        branch: string;
    }) => Promise<void>;
    createFork: () => Promise<Record<string, any>>;
    mergeUpstream: (cmdArgs?: {
        branch?: string | undefined;
    } | undefined) => Promise<any>;
    push: () => Promise<import("../vendored/isomorphic-git/index.js").PushResult>;
    pull: (cmdArgs: {
        singleBranch?: boolean | undefined;
        fastForward?: boolean | undefined;
        author?: import("./openRepository.js").Author | undefined;
    }) => Promise<void>;
}>;
//# sourceMappingURL=mockRepo.d.ts.map