import execa from 'execa'; import { Runner, TypescriptStarterOptions, TypescriptStarterUserOptions } from './utils'; export declare enum Placeholders { email = "YOUR_EMAIL", name = "YOUR_NAME", username = "YOUR_GITHUB_USER_NAME" } export declare const cloneRepo: (spawner: typeof execa, suppressOutput?: boolean) => (repoInfo: { readonly branch: string; readonly repo: string; }, workingDirectory: string, dir: string) => Promise<{ commitHash: string; gitHistoryDir: string; }>; export declare const getGithubUsername: (fetcher: any) => (email: string | undefined) => Promise; export declare const getUserInfo: (spawner: typeof execa) => () => Promise<{ gitEmail: string; gitName: string; }>; export declare const initialCommit: (spawner: typeof execa) => (hash: string, projectDir: string) => Promise; export declare const install: (spawner: typeof execa) => (runner: Runner, projectDir: string) => Promise; /** * Returns the URL and branch to clone. We clone the branch (tag) at the current * release rather than `master`. This ensures we get the exact files expected by * this version of the CLI. (If we cloned master, changes merged to master, but * not yet released, may cause unexpected results.) * @param starterVersion the current version of this CLI */ export declare const getRepoInfo: (starterVersion: string) => { branch: string; repo: string; }; export declare type Tasks = { readonly cloneRepo: (repoInfo: { readonly branch: string; readonly repo: string; }, workingDirectory: string, dir: string) => Promise<{ readonly commitHash: string; readonly gitHistoryDir: string; }>; readonly initialCommit: (hash: string, projectDir: string, name: string) => Promise; readonly install: (runner: Runner, projectDir: string) => Promise; }; export declare const LiveTasks: Tasks; export declare const addInferredOptions: (userOptions: TypescriptStarterUserOptions) => Promise;