export declare type RequestType = "post" | "get" | "jsonp";
export declare type ResponseType = "json" | "text";
export interface IOptions {
    baseUrl: string;
    type?: RequestType;
    userID?: string;
    password?: string;
    rejectUnauthorized?: boolean;
    timeoutSecs?: number;
}
export interface IConnection {
    opts(_: Partial<IOptions>): this;
    opts(): IOptions;
    send(action: string, request: any, responseType?: ResponseType): Promise<any>;
    clone(): IConnection;
}
export declare function serializeRequest(obj: any, prefix?: string): string;
export declare function deserializeResponse(body: string): any;
export declare function jsonp(opts: IOptions, action: string, request?: any, responseType?: ResponseType): Promise<any>;
export declare function post(opts: IOptions, action: string, request: any, responseType?: ResponseType): Promise<any>;
export declare function get(opts: IOptions, action: string, request: any, responseType?: ResponseType): Promise<any>;
export declare type SendFunc = (opts: IOptions, action: string, request: any, responseType: ResponseType) => Promise<any>;
export declare function send(opts: IOptions, action: string, request: any, responseType?: ResponseType): Promise<any>;
export declare function hookSend(newSend?: SendFunc): SendFunc;
export declare class Connection implements IConnection {
    protected _opts: IOptions;
    constructor(opts: IOptions);
    opts(_: Partial<IOptions>): this;
    opts(): IOptions;
    send(action: string, request: any, responseType?: ResponseType): Promise<any>;
    clone(): Connection;
}
export declare type IConnectionFactory = (opts: IOptions) => IConnection;
export declare let createConnection: IConnectionFactory;
export declare function setTransportFactory(newFunc: IConnectionFactory): IConnectionFactory;
//# sourceMappingURL=connection.d.ts.map