/**
* @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 { Observable } from 'rxjs';
import { Url } from 'url';
import { 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 FallbackContext = TypedSchematicContext;
/**
* 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;
addHost(host: EngineHost): void;
createCollectionDescription(name: string, requester?: CollectionDescription<{}>): CollectionDescription;
createSchematicDescription(name: string, collection: CollectionDescription): SchematicDescription | null;
getSchematicRuleFactory(schematic: SchematicDescription, collection: CollectionDescription): RuleFactory;
createSourceFromUrl(url: Url, context: FallbackContext): Source | null;
transformOptions(schematic: SchematicDescription, options: OptionT, context?: FallbackContext): Observable;
transformContext(context: FallbackContext): FallbackContext;
listSchematicNames(collection: CollectionDescription): string[];
createTaskExecutor(name: string): Observable;
hasTaskExecutor(name: string): boolean;
}