import { ResponseSuccessType, ResponseErrorType, ProgressDataType, AdapterInstance, getErrorMessage } from '.';
import { LoggerMethods } from '../managers';
import { RequestInstance } from '../request';
import { ExtractResponseType, ExtractErrorType, ExtractAdapterOptionsType, ExtractAdapterStatusType, ExtractAdapterExtraType } from '../types';
export declare const getAdapterBindings: <T extends AdapterInstance>({ request: baseRequest, requestId, resolve, onStartTime, internalErrorMapping, }: {
    request: RequestInstance;
    requestId: string;
    resolve: (value: ResponseSuccessType<any, T> | ResponseErrorType<any, T>) => void;
    onStartTime: (timestamp: number) => void;
    internalErrorMapping: (error: ReturnType<typeof getErrorMessage>) => any;
}) => Promise<{
    request: RequestInstance;
    requestId: string;
    url: string;
    endpoint: any;
    queryParams: any;
    payload: any;
    headers: any;
    adapter: AdapterInstance;
    adapterOptions: ExtractAdapterOptionsType<T> | undefined;
    getAbortController: () => AbortController | undefined;
    getRequestStartTimestamp: () => number | null;
    getResponseStartTimestamp: () => number | null;
    createAbortListener: ({ status, extra, onAbort, }: {
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
        onAbort?: () => void;
    }) => () => void;
    onBeforeRequest: () => void;
    onRequestStart: (progress?: ProgressDataType) => number;
    onRequestProgress: (progress: ProgressDataType) => number;
    onRequestEnd: () => number;
    onResponseStart: (progress?: ProgressDataType) => number;
    onResponseProgress: (progress: ProgressDataType) => number;
    onResponseEnd: () => number;
    onSuccess: ({ data, error, status, extra, }: {
        data: any;
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
        error?: ExtractErrorType<T>;
    }) => Promise<ResponseSuccessType<ExtractResponseType<T>, T>>;
    onAbortError: ({ status, extra, }: {
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
    }) => Promise<ResponseErrorType<any, T>>;
    onTimeoutError: ({ status, extra, }: {
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
    }) => Promise<ResponseErrorType<any, T>>;
    onUnexpectedError: ({ status, extra, }: {
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
    }) => Promise<ResponseErrorType<any, T>>;
    onError: ({ error, status, extra, }: {
        error: any;
        status: ExtractAdapterStatusType<T>;
        extra: ExtractAdapterExtraType<T>;
    }) => Promise<ResponseErrorType<any, T>>;
}>;
export declare function getAdapterOnError<T extends AdapterInstance>({ request, requestId, startTime, resolve, logger, }: {
    request: RequestInstance;
    requestId: string;
    startTime: number;
    logger: LoggerMethods;
    resolve: (value: ResponseSuccessType<any, T> | ResponseErrorType<any, T>) => void;
}): ({ error, status, extra, }: {
    error: any;
    status: ExtractAdapterStatusType<T>;
    extra: ExtractAdapterExtraType<T>;
}) => Promise<ResponseErrorType<any, T>>;
//# sourceMappingURL=adapter.bindings.d.ts.map