/*!
 * TSRPC Miniapp v3.4.16
 * -----------------------------------------
 * Copyright (c) King Wang.
 * MIT License
 * https://github.com/k8w/tsrpc-miniapp
 */
import { BaseHttpClient } from 'tsrpc-base-client';
import { BaseHttpClientOptions } from 'tsrpc-base-client';
import { BaseServiceType } from 'tsrpc-proto';
import { BaseWsClient } from 'tsrpc-base-client';
import { BaseWsClientOptions } from 'tsrpc-base-client';
import { ServiceProto } from 'tsrpc-proto';

/**
 * Client for TSRPC HTTP Server.
 * It uses native http module of NodeJS.
 * @typeParam ServiceType - `ServiceType` from generated `proto.ts`
 */
export declare class HttpClient<ServiceType extends BaseServiceType> extends BaseHttpClient<ServiceType> {
    readonly options: Readonly<HttpClientOptions>;
    constructor(proto: ServiceProto<ServiceType>, options?: Partial<HttpClientOptions>);
}

export declare interface HttpClientOptions extends BaseHttpClientOptions {
    /**
     * MiniApp API Object
     * @remarks
     * - Wechat: `wx`
     * - QQ MiniApp: `qq`
     * - ByteDance MiniApp: `tt`
     * @defaultValue `wx`
     */
    miniappObj: any;
}

/**
 * Client for TSRPC WebSocket Server.
 * @typeParam ServiceType - `ServiceType` from generated `proto.ts`
 */
export declare class WsClient<ServiceType extends BaseServiceType> extends BaseWsClient<ServiceType> {
    readonly options: Readonly<WsClientOptions>;
    constructor(proto: ServiceProto<ServiceType>, options?: Partial<WsClientOptions>);
}

export declare interface WsClientOptions extends BaseWsClientOptions {
    /**
     * MiniApp API Object
     * Wechat: wx
     * QQ MiniApp: qq
     * ByteDance MiniApp: tt
     */
    miniappObj: any;
    /** Extra options to wx.connectSocket */
    connectSocketOptions?: object;
}


export * from "tsrpc-proto";

export { }
