import { NameAnd } from "@laoban/utils"; import { FailedInitSuggestions, SuccessfullInitSuggestions } from "./status"; import { PackageDetailsAndLocations } from "laoban/dist/src/loadingTemplates"; import { FileOps, LocationAnd, LocationAndParsed } from "@laoban/fileops"; interface ProjectDetailsJson { variableFiles: NameAnd; contents: any; } export interface InitFileContents { type: string; location: string; parents?: string | string[]; markers?: string | string[]; "laoban.json": any; "package.details.json": ProjectDetailsJson; } export interface initFileContentsWithParsedLaobanJsonAndProjectDetails extends InitFileContents, PackageDetailsAndLocations { laoban: any; packageDetails: any; } export declare function findTypes(fileOps: FileOps, cmd: TypeCmdOptions): Promise<{ type: string; inits: NameAnd; typeUrls: string[]; }>; interface TypeAndIFC { allInitFileContents: InitFileContents[]; type: string; } export declare function findInitFileContents(fileOps: FileOps, cmd: TypeCmdOptions): Promise; export declare function makeProjectDetails(templatePackageJson: any, initFileContents: InitFileContents, packageJsonDetails: LocationAnd, allProjectNames: string[]): string; export declare function findAllProjectNames(packageJsonDetails: LocationAnd[]): string[]; export interface ProjectDetailsAndTemplate extends LocationAnd { template: string; templatePackageJson: any; } export declare const makeAllProjectDetails: (templateLookup: NameAnd, initFileContents: initFileContentsWithParsedLaobanJsonAndProjectDetails[], type: string, packageJsonDetails: LocationAndParsed[]) => ProjectDetailsAndTemplate[]; interface SuccessfullInitData { existingLaobanFile: string; suggestions: SuccessfullInitSuggestions; initFileContents: initFileContentsWithParsedLaobanJsonAndProjectDetails[]; laoban: string; parsedLaoBan: any; projectDetails: ProjectDetailsAndTemplate[]; } interface FailedInitData { suggestions: FailedInitSuggestions; initFileContents: InitFileContents[]; } export declare type InitData = SuccessfullInitData | FailedInitData; export declare function isSuccessfulInitData(data: InitData): data is SuccessfullInitData; export declare function findLaobanUpOrDown(fileOps: FileOps, directory: string): Promise; export declare function gatherInitData(fileOps: FileOps, directory: string, cmd: TypeCmdOptions, quiet: boolean): Promise; export declare function filesAndContents(initData: SuccessfullInitData, dryRun: boolean): LocationAnd[]; export declare function reportInitData(initData: SuccessfullInitData, files: LocationAnd[]): void; export interface TypeCmdOptions { type: string; legaltypes: string[]; initurl: string; listTypes?: boolean; } interface InitCmdOptions extends TypeCmdOptions { dryrun?: boolean; force?: boolean; } export declare function init(fileOps: FileOps, directory: string, cmd: InitCmdOptions): Promise; export {};