export declare class CollectionCannotBeResolvedException extends BaseException { constructor(name: string); } export declare class CollectionMissingFieldsException extends BaseException { constructor(name: string); } export declare class CollectionMissingSchematicsMapException extends BaseException { constructor(name: string); } export declare type ContextTransform = (context: FileSystemSchematicContext) => FileSystemSchematicContext; export declare class ExportStringRef { get module(): string; get path(): string; get ref(): T | undefined; constructor(ref: string, parentPath?: string, inner?: boolean); } export declare class FactoryCannotBeResolvedException extends BaseException { constructor(name: string); } export declare type FileSystemCollection = Collection; export declare type FileSystemCollectionDesc = CollectionDescription; export interface FileSystemCollectionDescription { readonly name: string; readonly path: string; readonly schematics: { [name: string]: FileSystemSchematicDesc; }; readonly version?: string; } export declare type FileSystemEngine = Engine; export declare class FileSystemEngineHost extends FileSystemEngineHostBase { protected _root: string; constructor(_root: string); protected _resolveCollectionPath(name: string): string; protected _resolveReferenceString(refString: string, parentPath: string): { ref: RuleFactory<{}>; path: string; } | null; protected _transformCollectionDescription(name: string, desc: Partial): FileSystemCollectionDesc; protected _transformSchematicDescription(name: string, _collection: FileSystemCollectionDesc, desc: Partial): FileSystemSchematicDesc; createTaskExecutor(name: string): Observable; hasTaskExecutor(name: string): boolean; } export declare abstract class FileSystemEngineHostBase implements FileSystemEngineHost { protected abstract _resolveCollectionPath(name: string): string; protected abstract _resolveReferenceString(name: string, parentPath: string): { ref: RuleFactory<{}>; path: string; } | null; protected abstract _transformCollectionDescription(name: string, desc: Partial): FileSystemCollectionDesc; protected abstract _transformSchematicDescription(name: string, collection: FileSystemCollectionDesc, desc: Partial): FileSystemSchematicDesc; createCollectionDescription(name: string): FileSystemCollectionDesc; createSchematicDescription(name: string, collection: FileSystemCollectionDesc): FileSystemSchematicDesc | null; createSourceFromUrl(url: Url): Source | null; createTaskExecutor(name: string): Observable; getSchematicRuleFactory(schematic: FileSystemSchematicDesc, _collection: FileSystemCollectionDesc): RuleFactory; hasTaskExecutor(name: string): boolean; listSchematicNames(collection: FileSystemCollectionDesc): string[]; registerContextTransform(t: ContextTransform): void; registerOptionsTransform(t: OptionTransform): void; registerTaskExecutor(factory: TaskExecutorFactory, options?: T): void; transformContext(context: FileSystemSchematicContext): FileSystemSchematicContext; transformOptions(schematic: FileSystemSchematicDesc, options: OptionT, context?: FileSystemSchematicContext): Observable; } export declare class FileSystemHost extends virtualFs.ScopedHost<{}> { constructor(dir: string); } export declare type FileSystemSchematic = Schematic; export declare type FileSystemSchematicContext = TypedSchematicContext; export declare type FileSystemSchematicDesc = SchematicDescription; export interface FileSystemSchematicDescription extends FileSystemSchematicJsonDescription { readonly factoryFn: RuleFactory<{}>; readonly path: string; readonly schemaJson?: JsonObject; } export interface FileSystemSchematicJsonDescription { readonly aliases?: string[]; readonly collection: FileSystemCollectionDescription; readonly description: string; readonly extends?: string; readonly factory: string; readonly name: string; readonly schema?: string; } export declare class InvalidCollectionJsonException extends BaseException { constructor(_name: string, path: string, jsonException?: UnexpectedEndOfInputException | InvalidJsonCharacterException); } export declare class NodeModulesEngineHost extends FileSystemEngineHostBase { constructor(paths?: string[] | undefined); protected _resolveCollectionPath(name: string): string; protected _resolveReferenceString(refString: string, parentPath: string): { ref: RuleFactory<{}>; path: string; } | null; protected _transformCollectionDescription(name: string, desc: Partial): FileSystemCollectionDesc; protected _transformSchematicDescription(name: string, _collection: FileSystemCollectionDesc, desc: Partial): FileSystemSchematicDesc; } export declare class NodeModulesTestEngineHost extends NodeModulesEngineHost { get tasks(): TaskConfiguration<{}>[]; protected _resolveCollectionPath(name: string): string; clearTasks(): void; registerCollection(name: string, path: string): void; transformContext(context: FileSystemSchematicContext): FileSystemSchematicContext; } export declare class NodePackageDoesNotSupportSchematics extends BaseException { constructor(name: string); } export declare class NodeWorkflow extends workflow.BaseWorkflow { get engine(): FileSystemEngine; get engineHost(): NodeModulesEngineHost; constructor(host: virtualFs.Host, options: { force?: boolean; dryRun?: boolean; root?: Path; packageManager?: string; registry?: schema.CoreSchemaRegistry; resolvePaths?: string[]; }); } export declare type OptionTransform = (schematic: FileSystemSchematicDescription, options: T, context?: FileSystemSchematicContext) => Observable | PromiseLike | R; export declare class SchematicMissingDescriptionException extends BaseException { constructor(name: string); } export declare class SchematicMissingFactoryException extends BaseException { constructor(name: string); } export declare class SchematicMissingFieldsException extends BaseException { constructor(name: string); } export declare class SchematicNameCollisionException extends BaseException { constructor(name: string); } export declare function validateOptionsWithSchema(registry: schema.SchemaRegistry): (schematic: FileSystemSchematicDescription, options: T, context?: FileSystemSchematicContext | undefined) => Observable;