///
/**
* @license
* Copyright Google Inc. 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/Observable';
import { Url } from 'url';
import { MergeStrategy } from '../tree/interface';
import { Collection, CollectionDescription, Engine, EngineHost, Schematic, SchematicDescription, Source, 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 SchematicEngineConflictingException extends BaseException {
constructor();
}
export declare class UnregisteredTaskException extends BaseException {
constructor(name: string, schematic?: SchematicDescription<{}, {}>);
}
export declare class SchematicEngine implements Engine {
private _host;
private _collectionCache;
private _schematicCache;
private _taskSchedulers;
constructor(_host: EngineHost);
readonly defaultMergeStrategy: MergeStrategy;
createCollection(name: string): Collection;
private _createCollectionDescription(name, parentNames?);
createContext(schematic: Schematic, parent?: Partial>): TypedSchematicContext;
createSchematic(name: string, collection: Collection): Schematic;
listSchematicNames(collection: Collection): string[];
transformOptions(schematic: Schematic, options: OptionT): Observable;
createSourceFromUrl(url: Url, context: TypedSchematicContext): Source;
executePostTasks(): Observable;
}