export interface ITileBand {
    url: string;
    bands: number[];
}
export type RequestParameters = {
    url: string | string[] | ITileBand[];
    headers?: any;
    method?: 'GET' | 'POST' | 'PUT';
    body?: string;
    type?: 'string' | 'json' | 'arrayBuffer';
    credentials?: 'same-origin' | 'include';
    collectResourceTiming?: boolean;
    signal?: AbortSignal;
};
export type ResponseCallback<T> = (error?: Error | Error[] | null, data?: T | null, cacheControl?: string | null, expires?: string | null, xhr?: any) => void;
export declare class AJAXError extends Error {
    /**
     * The response's HTTP status code.
     */
    status: number;
    /**
     * The response's HTTP status text.
     */
    statusText: string;
    /**
     * The request's URL.
     */
    url: string;
    /**
     * The response's body.
     */
    body: Blob;
    constructor(status: number, statusText: string, url: string, body: Blob);
}
export interface IXhrRequestResult {
    err?: Error | Error[] | null;
    data?: any | null;
    cacheControl?: string | null;
    expires?: string | null;
    xhr?: any;
}
export declare function makeXMLHttpRequestPromise(requestParameters: RequestParameters): Promise<IXhrRequestResult>;
export declare const getJSON: (requestParameters: RequestParameters, callback: ResponseCallback<any>) => any;
export declare const getArrayBuffer: (requestParameters: RequestParameters, callback: ResponseCallback<ArrayBuffer>) => any;
export declare const postData: (requestParameters: RequestParameters, callback: ResponseCallback<string>) => any;
export declare function sameOrigin(url: string): boolean;
export declare const getImage: (requestParameters: RequestParameters, callback: ResponseCallback<HTMLImageElement | ImageBitmap | null>, transformResponse?: ((response: object) => any) | undefined) => any;
export declare const formatImage: (imgData: ArrayBuffer, callback: ResponseCallback<HTMLImageElement | ImageBitmap | null>) => void;
