import { OpenAPIV3 } from 'openapi-types';
import { OperationObjectWithMetadata } from './open-api';
import * as i0 from "@angular/core";
export type OperationMap = Map<string, OperationObjectWithMetadata>;
export declare class OpenApiConfigService {
    static Config: OpenAPIV3.Document | null;
    static DefaultServerIndex: number;
    private static _operations;
    defaultServerIndex: number;
    private _operations;
    private static serverConfigMap;
    private get serverConfigMap();
    get serverIds(): string[];
    constructor(config?: OpenAPIV3.Document | null);
    private _config;
    get config(): OpenAPIV3.Document;
    /**
     * Used to load the app open api config from a remote resource.
     *
     * Promise.all([ OpenApiDataSourceLoader.Load() ])
     * .then(() => platformBrowserDynamic().bootstrapModule(AppModule))
     * .catch(err => console.error(err))
     *
     */
    static Load(openApiUrl?: string): Promise<void>;
    static GetOperation(operationId: string): OperationObjectWithMetadata;
    private static LoadOperations;
    private static GetBaseUrl;
    /**
     * Replaces all $ref with the concrete definition
     *
     * @param config
     * @private
     */
    private static ExpandOpenApi;
    getOperation(operationId: string): OperationObjectWithMetadata;
    getBaseUrl(serverIndex?: number, serverId?: string): string;
    static InsertServer(serverConfig: OpenAPIV3.ServerObject, index: number, serverId?: string, config?: OpenAPIV3.Document): void;
    insertServer(serverConfig: OpenAPIV3.ServerObject, index?: number, serverId?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OpenApiConfigService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OpenApiConfigService>;
}
