export declare const ApiService: {
    create: <Headers_1>({ headers, onResponse, onError, onRequest, options }: CreateApiProps<Headers_1>) => IApiService<Headers_1>;
};
interface CreateApiProps<Headers = any> {
    headers?: Headers;
    onResponse?: OnResponse;
    onError?: OnError;
    onRequest?: OnRequest<Headers>;
    options?: {
        mode?: RequestMode;
        cache?: RequestCache;
        credentials?: RequestCredentials;
        redirect?: RequestRedirect;
        referrerPolicy?: ReferrerPolicy;
    };
}
type OnResponse = (res: any) => any;
type OnError = (err: any) => any;
type OnRequest<T> = (props: OnRequestProps<T>) => void;
type OnRequestProps<Headers> = {
    method: "GET" | "DELETE" | "POST" | "PUT" | "PATCH" | "UPDATE";
    signal: AbortSignal;
    body?: any;
    headers: Headers;
};
export interface IMethod<Headers> {
    url: string;
    body?: any;
    headers?: Headers;
    abortId?: string;
}
export interface IApiService<Headers = any> {
    get: (props: IMethod<Headers>) => Promise<any>;
    delete: (props: IMethod<Headers>) => Promise<any>;
    post: (props: IMethod<Headers>) => Promise<any>;
    put: (props: IMethod<Headers>) => Promise<any>;
    patch: (props: IMethod<Headers>) => Promise<any>;
    update: (props: IMethod<Headers>) => Promise<any>;
    getBlob: (props: IMethod<Headers>) => Promise<Blob>;
    postBlob: (props: IMethod<Headers>) => Promise<Blob>;
    setHeader: (headers: Headers) => void;
    setOnResponse: (onResponse: OnResponse) => void;
    setOnError: (onError: OnError) => void;
    setOnRequest: (onRequest: OnRequest<Headers>) => void;
}
export default ApiService;
