export declare type InitCfg = {
    apiKey?: string;
    secretKey?: string;
    verbose?: boolean;
    demo?: boolean;
};
export declare abstract class Exchange {
    protected apiKey: string;
    protected secret: string;
    protected verbose: boolean;
    constructor(cfg?: InitCfg);
    hmac(data: any): any;
    extractParams(string: any): any[];
    implodeParams(string: any, params: any): any;
    nonce(): number;
    request(cfg: {
        url: string;
        method: string;
        body: any;
        headers?: Object;
    }): Promise<any>;
    urlencode(data: any): any;
    sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
        url: any;
        method: string;
        body: any;
        headers: any;
    };
    protected signBodyWithSecret(body: any): any;
}
export interface ErrorExchange extends Error {
    success: number;
    error: string;
}
