import type * as Types from './types'; export { Types }; export declare class Optimade { private providersUrl; private corsProxyUrl; providers: Types.ProvidersMap | null; apis: Types.ApisMap; private reqStack; constructor({ providersUrl, corsProxyUrl }?: { providersUrl?: string; corsProxyUrl?: string; }); addProvider(provider: Types.Provider): Promise; getProviders(api?: Types.Api): Promise; getApis(provider: Types.Provider | string, version?: string): Promise; getStructures({ providerId, filter, page, limit, offset }: { providerId: string; filter: string; page: number; limit: number; offset: number; }): Promise; getStructuresAll({ providers, filter, page, limit, offset, batch }: { providers: string[]; filter: string; page: number; limit: number; offset: number; batch?: boolean; }): Promise[]> | Promise[]; private followLinks; private wrapUrl; private isDuplicatedReq; static getJSON(uri: string, params?: any, headers?: {}): Promise; static isProviderValid(provider: Types.Provider): boolean; static apiVersionUrl({ attributes: { api_version, available_api_versions } }: Types.Api): any; static apiVersion({ data, meta }: Types.InfoResponse): Types.Api; }