import { IBuffer } from './buffer'; export declare const userAgent: string; export type Params = Dict | null; export type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1'; export interface Options { params?: Params; method?: string; timeout?: number; headers?: Dict; dataType?: string; signer?: Signer; urlencoded?: boolean; userAgent?: string; cacheTime?: number; noRepeat?: boolean; proxy?: string; minSsl?: SecureVersion; maxSsl?: SecureVersion; limitDataSize?: number; logs?: boolean; gzip?: boolean; onReady?: (statusCode: number, headers: Dict) => any; } export declare const defaultOptions: Options; export declare function querystringStringify(obj: any, sep?: string, eq?: string): string; export declare function stringifyXml(obj: any): string; export interface Result { data: T; headers: Dict; statusCode: number; httpVersion: string; requestHeaders: Dict; requestData: Dict; cached: boolean; } export type PromiseResult = Promise>; /** * @class Signer */ export interface Signer { sign(path: string, data: string): Dict | Promise>; } /** * @func request */ export declare function request(pathname: string, opts?: Options): PromiseResult; export declare function parseJSON(json: string): any; /** * @class Request */ export declare class Request { private m_user_agent; private m_prefix; private m_data_type; private m_cache; private m_timeout; private m_signer?; private m_cur_reqs; private m_no_repeat; constructor(prefix: string); get userAgent(): string; set userAgent(v: string); get urlencoded(): boolean; set urlencoded(v: boolean); get dataType(): string; set dataType(v: string); get prefix(): string; set prefix(v: string); get timeout(): number | undefined; set timeout(value: number | undefined); get noRepeat(): boolean; set noRepeat(value: boolean); get signer(): Signer | null; set signer(value: Signer | null); /** * @func getRequestHeaders */ getRequestHeaders(): Dict; parseResponseData(buf: IBuffer, result: Result): IBuffer; protected rawRequest(url: string, opts: Options): PromiseResult; private __request; request(name: string, method?: string, params?: Params, options?: Options): Promise>; get(name: string, params?: Params, options?: Options): Promise>; post(name: string, params?: Params, options?: Options): Promise>; call(name: string, params?: Params, options?: Options): Promise; } declare const _default: { Request: typeof Request; /** * @get userAgent */ readonly userAgent: string; /** * @func setShared() */ setShared(req: Request): void; /** * @get shared # default web server */ readonly shared: any; /** * @func request() */ request: typeof request; /** * @func get() */ get(url: string, options?: Options): PromiseResult; /** * @func post() */ post(url: string, options?: Options): PromiseResult; }; export default _default;