import { HttpLibrary } from "./http/http.js"; import { Middleware, PromiseMiddleware } from "./middleware.js"; import { BaseServerConfiguration } from "./servers.js"; import { AuthMethods, AuthMethodsConfiguration } from "./auth/auth.js"; export interface Configuration { readonly baseServer: BaseServerConfiguration; readonly httpApi: HttpLibrary; readonly middleware: M[]; readonly authMethods: AuthMethods; } export interface MiddlewareMergeOptions { middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; } export type ConfigurationOptions = Partial> & MiddlewareMergeOptions; export type StandardConfigurationOptions = ConfigurationOptions; export type PromiseConfigurationOptions = ConfigurationOptions; /** * Interface with which a configuration object can be configured. */ export interface ConfigurationParameters { /** * Default server to use - a list of available servers (according to the * OpenAPI yaml definition) is included in the `servers` const in `./servers`. You can also * create your own server with the `ServerConfiguration` class from the same * file. */ baseServer?: BaseServerConfiguration; /** * HTTP library to use e.g. IsomorphicFetch. This can usually be skipped as * all generators come with a default library. * If available, additional libraries can be imported from `./http/*` */ httpApi?: HttpLibrary; /** * The middlewares which will be applied to requests and responses. You can * add any number of middleware components to modify requests before they * are sent or before they are deserialized by implementing the `Middleware` * interface defined in `./middleware` */ middleware?: Middleware[]; /** * Configures middleware functions that return promises instead of * Observables (which are used by `middleware`). Otherwise allows for the * same functionality as `middleware`, i.e., modifying requests before they * are sent and before they are deserialized. */ promiseMiddleware?: PromiseMiddleware[]; /** * Configuration for the available authentication methods (e.g., api keys) * according to the OpenAPI yaml definition. For the definition, please refer to * `./auth/auth` */ authMethods?: AuthMethodsConfiguration; } /** * Provide your `ConfigurationParameters` to this function to get a `Configuration` * object that can be used to configure your APIs (in the constructor or * for each request individually). * * If a property is not included in conf, a default is used: * - baseServer: server1 * - httpApi: IsomorphicFetchHttpLibrary * - middleware: [] * - promiseMiddleware: [] * - authMethods: {} * * @param conf partial configuration */ export declare function createConfiguration(conf?: ConfigurationParameters): Configuration;