import { ServiceHandle } from "./ServiceHandle";
import { ServiceWatch } from "./ServiceWatch";
export declare class DiscoveryRegisterError extends Error {
}
export declare abstract class Discovery {
    abstract registerService(service: any, serverAddress: string, serverPort: number): Promise<void>;
    abstract deregisterService(service: any): Promise<void>;
    abstract findAll(name: string, tags?: string[]): Promise<Array<ServiceHandle>>;
    abstract watchService(name: string, tags?: string[]): ServiceWatch;
    find(name: string, tags?: string[]): Promise<ServiceHandle>;
    waitForService(name: string, tags?: string[]): Promise<ServiceHandle>;
}
