import { IActorRegistryService } from '@darlean/actor-registry-suite';
import { IAbortable } from '@darlean/base';
import { ITime } from '@darlean/utils';
import { ActorRegistry, IActorRegistry, IActorTypeInfo } from './remoteinvocation';
/**
 * Implementation of {@link IActorRegistry} that uses the distributed actor registry functionality
 * from {@link @darlean/actor-registry-suite}.
 */
export declare class DistributedActorRegistry implements IActorRegistry {
    private service;
    private ownRegistry;
    private knownRegistry;
    private requestedTypes;
    private refreshTimer?;
    private pushTimer?;
    private appId;
    private time;
    private nonce;
    private aborter?;
    constructor(service: IActorRegistryService & IAbortable, time: ITime, appId: string, ownRegistry: ActorRegistry);
    start(): void;
    stop(): Promise<void>;
    findPlacement(type: string): IActorTypeInfo | undefined;
    protected obtain(): Promise<void>;
    protected push(): Promise<void>;
}
