import { ErrorHandler, WarningHandler, Endpoint, RequestCreator } from "./support";
import { Conversation } from "./conversation";
export declare type SetupFunc = (c: Conversation) => void;
export declare class Client {
    errorHandler?: ErrorHandler;
    warningHandler?: WarningHandler;
    endpoint: Endpoint;
    host: string;
    port: number;
    clientId: string;
    proxy?: {
        host: string;
        port: number;
    };
    idSeed: number;
    constructor(endpoint: Endpoint);
    generateID(): number;
    warn(msg: string): void;
    onError(handler: ErrorHandler): void;
    onWarning(handler: WarningHandler): void;
    call<Params, Result>(rc: RequestCreator<Params, Result>, params: Params, setup?: SetupFunc): Promise<Result>;
}
