import { ModelAccessorBus, ProviderChangeSubscription } from '@eclipse-emfcloud/model-accessor-bus';
import { RpcServer } from '@theia/core';
import { ModelAccessorBusClient, ModelAccessorBusProtocol, ProviderChangeSubscriptionToken } from '../common';
import { ModelHubProvider } from './model-hub-provider';
export declare class ModelAccessorBusServer<K = string> implements ModelAccessorBusProtocol, RpcServer<ModelAccessorBusClient> {
    protected readonly modelHub: ModelHubProvider<K>;
    private nextSubscriptionId;
    protected client: ModelAccessorBusClient | undefined;
    protected getModelAccessorBus(context: string): Promise<ModelAccessorBus>;
    protected readonly subscriptionTokens: Map<number, ProviderChangeSubscriptionEntry>;
    setClient(client: ModelAccessorBusClient | undefined): void;
    getClient(): ModelAccessorBusClient | undefined;
    subscribe(context: string, accessorId: string): Promise<ProviderChangeSubscriptionToken>;
    closeSubscription(token: ProviderChangeSubscriptionToken): void;
    protected disposeSubscriptions(): void;
    get<T>(context: string, accessorId: string, ...parameters: unknown[]): Promise<T | undefined>;
    dispose(): void;
}
interface ProviderChangeSubscriptionEntry {
    token: ProviderChangeSubscriptionToken;
    subscription: ProviderChangeSubscription;
}
export {};
//# sourceMappingURL=model-accessor-bus-server.d.ts.map