///
/**
* @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 { Observable } from 'rxjs/Observable';
import { Url } from 'url';
import { Collection, CollectionDescription, EngineHost, RuleFactory, SchematicDescription, Source, TaskExecutor, TypedSchematicContext } from '../src';
export declare type FallbackCollectionDescription = {
host: EngineHost<{}, {}>;
description: CollectionDescription<{}>;
};
export declare type FallbackSchematicDescription = {
description: SchematicDescription<{}, {}>;
};
export declare type OptionTransform = (schematic: SchematicDescription, options: T) => Observable;
/**
* An EngineHost that support multiple hosts in a fallback configuration. If a host does not
* have a collection/schematics, use the following host before giving up.
*/
export declare class FallbackEngineHost implements EngineHost<{}, {}> {
private _hosts;
constructor();
addHost(host: EngineHost): void;
createCollectionDescription(name: string): CollectionDescription;
createSchematicDescription(name: string, collection: CollectionDescription): SchematicDescription | null;
getSchematicRuleFactory(schematic: SchematicDescription, collection: CollectionDescription): RuleFactory;
createSourceFromUrl(url: Url, context: TypedSchematicContext): Source | null;
transformOptions(schematic: SchematicDescription, options: OptionT): Observable;
/**
* @deprecated Use `listSchematicNames`.
*/
listSchematics(collection: Collection): string[];
listSchematicNames(collection: CollectionDescription): string[];
createTaskExecutor(name: string): Observable;
hasTaskExecutor(name: string): boolean;
}