/// import { URL } from 'url'; import { CancelError } from 'p-cancelable'; import { CancelableRequest, Response, Options, NormalizedOptions, Defaults as DefaultOptions, PaginationOptions, ParseError, RequestError, CacheError, ReadError, HTTPError, MaxRedirectsError, TimeoutError } from './as-promise'; import Request from './core'; declare type Except = Pick>; declare type Merge = Except> & SecondType; export interface InstanceDefaults { options: DefaultOptions; handlers: HandlerFunction[]; mutableDefaults: boolean; _rawHandlers?: HandlerFunction[]; } export declare type GotReturn = Request | CancelableRequest; export declare type HandlerFunction = (options: NormalizedOptions, next: (options: NormalizedOptions) => T) => T | Promise; export interface ExtendOptions extends Options { handlers?: HandlerFunction[]; mutableDefaults?: boolean; } export declare type OptionsOfTextResponseBody = Merge; export declare type OptionsOfJSONResponseBody = Merge; export declare type OptionsOfBufferResponseBody = Merge; export declare type OptionsOfUnknownResponseBody = Merge; export declare type StrictOptions = Except; export declare type StreamOptions = Merge; declare type ResponseBodyOnly = { resolveBodyOnly: true; }; export declare type OptionsWithPagination = Merge>; export interface GotPaginate { each: ((url: string | URL, options?: OptionsWithPagination) => AsyncIterableIterator) & ((options?: OptionsWithPagination) => AsyncIterableIterator); all: ((url: string | URL, options?: OptionsWithPagination) => Promise) & ((options?: OptionsWithPagination) => Promise); (url: string | URL, options?: OptionsWithPagination): AsyncIterableIterator; (options?: OptionsWithPagination): AsyncIterableIterator; } export interface GotRequestFunction { (url: string | URL, options?: OptionsOfTextResponseBody): CancelableRequest>; (url: string | URL, options?: OptionsOfJSONResponseBody): CancelableRequest>; (url: string | URL, options?: OptionsOfBufferResponseBody): CancelableRequest>; (url: string | URL, options?: OptionsOfUnknownResponseBody): CancelableRequest; (options: OptionsOfTextResponseBody): CancelableRequest>; (options: OptionsOfJSONResponseBody): CancelableRequest>; (options: OptionsOfBufferResponseBody): CancelableRequest>; (options: OptionsOfUnknownResponseBody): CancelableRequest; (url: string | URL, options?: (Merge)): CancelableRequest; (url: string | URL, options?: (Merge)): CancelableRequest; (url: string | URL, options?: (Merge)): CancelableRequest; (options: (Merge)): CancelableRequest; (options: (Merge)): CancelableRequest; (options: (Merge)): CancelableRequest; (url: string | URL, options?: Merge): Request; (options: Merge): Request; (url: string | URL, options?: Options): CancelableRequest | Request; (options: Options): CancelableRequest | Request; } export declare type HTTPAlias = 'get' | 'post' | 'put' | 'patch' | 'head' | 'delete'; interface GotStreamFunction { (url: string | URL, options?: Merge): Request; (options?: Merge): Request; } export declare type GotStream = GotStreamFunction & Record; export interface Got extends Record, GotRequestFunction { stream: GotStream; paginate: GotPaginate; defaults: InstanceDefaults; CacheError: typeof CacheError; RequestError: typeof RequestError; ReadError: typeof ReadError; ParseError: typeof ParseError; HTTPError: typeof HTTPError; MaxRedirectsError: typeof MaxRedirectsError; TimeoutError: typeof TimeoutError; CancelError: typeof CancelError; extend: (...instancesOrOptions: Array) => Got; mergeInstances: (parent: Got, ...instances: Got[]) => Got; mergeOptions: (...sources: Options[]) => NormalizedOptions; } export {};