import { AutorestLogger } from "@autorest/common"; import { DataStore, IFileSystem } from "@azure-tools/datastore"; import { Extension, ExtensionManager } from "@azure-tools/extension"; import { AutorestConfiguration } from "../autorest-configuration"; import { AutorestRawConfiguration } from "../configuration-schema"; export interface AutorestConfigurationResult { config: AutorestConfiguration; extensions: ResolvedExtension[]; } export interface ExtensionDefinition { name: string; source: string; fullyQualified: string; } export interface ResolvedExtension { definition: ExtensionDefinition; extension: Extension; } export interface ConfigurationLoaderOptions { /** * Override the file system to use. */ fileSystem?: IFileSystem; /** * Pass a custom datastore. */ dataStore?: DataStore; /** * Extension manager to resolve extension configuration. If not provided the extension configuration won't be resolved. */ extensionManager?: ExtensionManager; } /** * Class handling the loading of an autorest configuration. */ export declare class ConfigurationLoader { private logger; private defaultConfigUri; private configFileOrFolderUri; private fileSystem; private dataStore; private extensionManager; /** * @param fileSystem File system. * @param defaultConfigUri Default configuration Uri. This is the path to the default configuration file. * @param configFileOrFolderUri Path to the config file or folder. */ constructor(logger: AutorestLogger, defaultConfigUri: string, configFileOrFolderUri: string | undefined, options?: ConfigurationLoaderOptions); load(configs: AutorestRawConfiguration[], includeDefault: boolean): Promise; /** * Load the given configuration file and recursively load all required configs. * @param fileUri Uri to the configuration file to load. * @param fsToUse File system to use to load the configuration files. * @param manager Configuration manager * @param alreadyAddedConfigs Set of already loaded configuration files. */ private loadConfigFile; /** * Resolve the required configurations that haven't been loaded yet. * @param manager Configuration manager. * @param fsToUse Filesystem to use to load unloaded configs. * @param alreadyAddedConfigs List of configuration already loaded. */ private resolveRequiredConfigs; /** * Returns the @see Extension object for the requested extension. * @param extensionDef extension definition. * @param messageFormat message format. */ private resolveExtension; } //# sourceMappingURL=configuration-loader.d.ts.map