import * as nodeFs from 'fs';
interface RepoInfo {
    username: string;
    name: string;
    branch: string;
    filePath: string;
}
/**
 * The full system path to the preferred global state folder
 */
export declare function DIR(): string;
/**
 * extract repo info from uri
 * @param repoUri uri to git repo
 */
export declare function getRepoInfo(repoUri: URL): Promise<RepoInfo>;
/**
 * Returns a path to store custom templates from a Git repo
 * @param repoUri repository uri
 * @returns path to store custom templates
 */
export declare function getStoragePathForCustomTemplates(repoUri: URL): string;
/**
 * Load custom templates Git repo. Currently only supports GitHub.
 * @param repoUri repo uri
 * @param forceLoadingRemoteRepo by default do not reload remote repo if the repo is already downloaded
 * @param fs node-fs-compatible object, defaults to node:fs
 * @returns path to the local storage location of the repo
 */
export declare function loadCustomTemplatesGitRepo(repoUri: URL, forceLoadingRemoteRepo?: boolean, fs?: typeof nodeFs): Promise<string>;
export {};
