import { InstanceOptions } from '../HttpClient';
import { IOContext } from '../service/worker/runtime/typings';
import { Billing, Builder, MessagesGraphQL, Settings } from './apps';
import { CatalogGraphQL } from './apps/catalogGraphQL/index';
import { ID, MasterData, PaymentProvider } from './external';
import { Apps, Assets, BillingMetrics, Events, Registry, Router, VBase, Workspaces } from './infra';
import { IOClientConstructor } from './IOClient';
import { LicenseManager, Segment, Session, TenantClient, Catalog } from './janus';
export type ClientsImplementation<T extends IOClients> = new (clientOptions: Record<string, InstanceOptions>, ctx: IOContext) => T;
export declare class IOClients {
    private clientOptions;
    private ctx;
    private clients;
    constructor(clientOptions: Record<string, InstanceOptions>, ctx: IOContext);
    get apps(): Apps;
    get assets(): Assets;
    get billing(): Billing;
    get billingMetrics(): BillingMetrics;
    get builder(): Builder;
    get events(): Events;
    get id(): ID;
    get licenseManager(): LicenseManager;
    get masterdata(): MasterData;
    get messagesGraphQL(): MessagesGraphQL;
    get registry(): Registry;
    get router(): Router;
    get segment(): Segment;
    get settings(): Settings;
    get session(): Session;
    get tenant(): TenantClient;
    get vbase(): VBase;
    get workspaces(): Workspaces;
    get catalogGraphQL(): CatalogGraphQL;
    get janusCatalogSystem(): Catalog;
    get paymentProvider(): PaymentProvider;
    protected getOrSet<TClient extends IOClientConstructor>(key: string, Implementation: TClient): InstanceType<TClient>;
}
