/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
///
import { BaseException } from '@angular-devkit/core';
import { Observable } from 'rxjs';
import { Url } from 'url';
import { MergeStrategy } from '../tree/interface';
import { Workflow } from '../workflow/interface';
import { Collection, CollectionDescription, Engine, EngineHost, ExecutionOptions, Schematic, SchematicContext, SchematicDescription, Source, TaskConfiguration, TaskId, TaskInfo, TypedSchematicContext } from './interface';
export declare class UnknownUrlSourceProtocol extends BaseException {
constructor(url: string);
}
export declare class UnknownCollectionException extends BaseException {
constructor(name: string);
}
export declare class CircularCollectionException extends BaseException {
constructor(name: string);
}
export declare class UnknownSchematicException extends BaseException {
constructor(name: string, collection: CollectionDescription<{}>);
}
export declare class PrivateSchematicException extends BaseException {
constructor(name: string, collection: CollectionDescription<{}>);
}
export declare class SchematicEngineConflictingException extends BaseException {
constructor();
}
export declare class UnregisteredTaskException extends BaseException {
constructor(name: string, schematic?: SchematicDescription<{}, {}>);
}
export declare class UnknownTaskDependencyException extends BaseException {
constructor(id: TaskId);
}
export declare class CollectionImpl implements Collection {
private _description;
private _engine;
readonly baseDescriptions?: CollectionDescription[] | undefined;
constructor(_description: CollectionDescription, _engine: SchematicEngine, baseDescriptions?: CollectionDescription[] | undefined);
get description(): CollectionDescription;
get name(): string;
createSchematic(name: string, allowPrivate?: boolean): Schematic;
listSchematicNames(): string[];
}
export declare class TaskScheduler {
private _context;
private _queue;
private _taskIds;
private static _taskIdCounter;
constructor(_context: SchematicContext);
private _calculatePriority;
private _mapDependencies;
schedule(taskConfiguration: TaskConfiguration): TaskId;
finalize(): ReadonlyArray;
}
export declare class SchematicEngine implements Engine {
private _host;
protected _workflow?: Workflow | undefined;
private _collectionCache;
private _schematicCache;
private _taskSchedulers;
constructor(_host: EngineHost, _workflow?: Workflow | undefined);
get workflow(): Workflow | null;
get defaultMergeStrategy(): MergeStrategy;
createCollection(name: string, requester?: Collection): Collection;
private _createCollectionDescription;
createContext(schematic: Schematic, parent?: Partial>, executionOptions?: Partial): TypedSchematicContext;
createSchematic(name: string, collection: Collection, allowPrivate?: boolean): Schematic;
listSchematicNames(collection: Collection): string[];
transformOptions(schematic: Schematic, options: OptionT, context?: TypedSchematicContext): Observable;
createSourceFromUrl(url: Url, context: TypedSchematicContext): Source;
executePostTasks(): Observable;
}