///
import { Merge } from 'type-fest';
import { ProxyStream } from './as-stream';
import * as errors from './errors';
import { CancelableRequest, Defaults, ExtendOptions, HandlerFunction, NormalizedOptions, Options, Response, URLOrOptions, PaginationOptions } from './types';
export declare type HTTPAlias = 'get' | 'post' | 'put' | 'patch' | 'head' | 'delete';
export declare type ReturnStream = (url: string | Merge, options?: Merge) => ProxyStream;
export declare type GotReturn = CancelableRequest | ProxyStream;
export declare type OptionsOfDefaultResponseBody = Merge;
declare type OptionsOfTextResponseBody = Merge;
declare type OptionsOfJSONResponseBody = Merge;
declare type OptionsOfBufferResponseBody = Merge;
declare type ResponseBodyOnly = {
resolveBodyOnly: true;
};
/**
Can be used to match methods explicitly or parameters extraction: `Parameters`.
*/
export interface GotRequestMethod {
(url: string | OptionsOfDefaultResponseBody, options?: OptionsOfDefaultResponseBody): CancelableRequest>;
(url: string | OptionsOfTextResponseBody, options?: OptionsOfTextResponseBody): CancelableRequest>;
(url: string | OptionsOfJSONResponseBody, options?: OptionsOfJSONResponseBody): CancelableRequest>;
(url: string | OptionsOfBufferResponseBody, options?: OptionsOfBufferResponseBody): CancelableRequest>;
(url: string | Merge, options?: Merge): CancelableRequest;
(url: string | Merge, options?: Merge): CancelableRequest;
(url: string | Merge, options?: Merge): CancelableRequest;
(url: string | Merge, options?: Merge): CancelableRequest;
(url: string | Merge, options?: Merge): ProxyStream;
}
export interface GotPaginate {
(url: URLOrOptions & PaginationOptions, options?: Options & PaginationOptions): AsyncIterableIterator;
all(url: URLOrOptions & PaginationOptions, options?: Options & PaginationOptions): Promise;
}
export interface Got extends Record, GotRequestMethod {
stream: GotStream;
paginate: GotPaginate;
defaults: Defaults;
GotError: typeof errors.GotError;
CacheError: typeof errors.CacheError;
RequestError: typeof errors.RequestError;
ReadError: typeof errors.ReadError;
ParseError: typeof errors.ParseError;
HTTPError: typeof errors.HTTPError;
MaxRedirectsError: typeof errors.MaxRedirectsError;
UnsupportedProtocolError: typeof errors.UnsupportedProtocolError;
TimeoutError: typeof errors.TimeoutError;
CancelError: typeof errors.CancelError;
extend(...instancesOrOptions: Array): Got;
mergeInstances(parent: Got, ...instances: Got[]): Got;
mergeOptions(...sources: Options[]): NormalizedOptions;
}
export interface GotStream extends Record {
(url: URLOrOptions, options?: Options): ProxyStream;
}
export declare const defaultHandler: HandlerFunction;
declare const create: (defaults: Defaults) => Got;
export default create;