import { APIOptions } from './APIOptions.js';
import { Data } from './Data.js';
import { FetchOptionsWithJSON, FetchOptionsWithoutJSON } from './FetchOptions';
export declare class API {
    url: string;
    defaultHeaders: HeadersInit;
    defaultOptions: APIOptions;
    constructor(props: {
        url: string;
        headers?: HeadersInit;
        options?: Partial<APIOptions>;
    });
    private _getParsedUrl;
    private _fetch;
    private _execute;
    get<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    get(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    post<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    post(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    delete<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    delete(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    patch<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    patch(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    options<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    options(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    put<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    put(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
    head<T>(options: Partial<FetchOptionsWithJSON>): Promise<Data<T>>;
    head(options: Partial<FetchOptionsWithoutJSON>): Promise<Response>;
}
//# sourceMappingURL=API.d.ts.map