declare type TemplateType = 'monorepo' | 'project';
declare type ProjectFolder = 'apps' | 'libraries' | 'tools';
interface SdkOptions {
    name?: string;
    dependency?: string;
    ver?: string;
    spec?: string;
    isServer: boolean;
}
interface ApiOptions {
    specType?: 'json' | 'yaml' | 'spot';
}
interface CopyDirOptions {
    srcPath: string;
    dstPath: string;
    name: string;
    templateType?: TemplateType;
    projectFolder?: ProjectFolder;
    sdkOptions?: SdkOptions;
    apiOptions?: ApiOptions;
}
export declare const withSpinner: (message: string, task: () => Promise<void>) => Promise<void>;
export declare const clientSdkCreator: (parentDirectory: string, projectFolder?: ProjectFolder) => (sdkOptions: SdkOptions) => Promise<void>;
export declare const serverSdkCreator: (parentDirectory: string, projectFolder?: ProjectFolder) => (sdkOptions: SdkOptions) => Promise<void>;
export declare const apiCreator: (parentDirectory: string, projectFolder?: ProjectFolder) => (projectName: string, apiOptions: ApiOptions) => Promise<void>;
export declare const createMonorepo: (parentDirectory: string, monorepoName: string) => Promise<void>;
export declare const monorepoCreator: (parentDirectory: string) => (monorepoName: string) => Promise<void>;
export declare const createProject: (parentDirectory: string, projectName: string, projectFolder?: ProjectFolder, options?: Record<string, unknown>) => Promise<void>;
export declare const projectCreator: (parentDirectory: string, projectFolder?: ProjectFolder) => (projectName: string) => Promise<void>;
export declare const createModule: (parentDirectory: string, moduleName: string, extension?: string) => Promise<void>;
export declare const moduleCreator: (parentDirectory: string, extension?: string) => (moduleName: string) => Promise<void>;
export declare const componentCreator: (parentDirectory: string) => (moduleName: string) => Promise<void>;
export declare const createFromTemplate: ({ srcPath, dstPath, name, templateType, projectFolder, sdkOptions, apiOptions }: CopyDirOptions) => Promise<{
    dstPath: string;
    inMonorepo: boolean;
}>;
export declare const templatePath: (parentDirectory: string, templateFile: string) => string;
export declare const templateDir: (parentDirectory: string, dirName?: string) => string;
export declare const templateFile: (parentDirectory: string, extension?: string, moduleName?: string) => string;
export declare const runCommander: () => void;
export {};
