export type Cancelable = {
    cancel: () => void;
};
export type Callback<T> = (error: Error | null | undefined, result: T | null | undefined) => void;
interface Headers {
    [key: string]: string;
}
export type RequestParameters = {
    url: string;
    headers?: Headers;
    method?: "GET" | "POST" | "PUT";
    body?: string;
    type?: "string" | "json" | "arrayBuffer";
    credentials?: "same-origin" | "include";
    collectResourceTiming?: boolean;
    referrerPolicy?: ReferrerPolicy;
};
export type ResponseCallback<T> = (error?: Error | null | undefined, data?: T | null | undefined, cacheControl?: string | null | undefined, expires?: string | null | undefined) => void;
/**
 * 请求函数
 * @function ajax
 *
 * @param {RequestParameters} requestParameters 请求参数
 * @param {string} requestParameters.url 要请求的URL。
 * @param {Object} requestParameters.headers 要与请求一起发送的标头。
 * @param {string} requestParameters.method 请求方法“GET”|“POST”|“PUT”。
 * @param {string} requestParameters.body 请求正文。
 * @param {string} requestParameters.type 要返回的响应主体类型为“string”、“json”、“arrayBuffer”。
 * @param {string} requestParameters.credentials `'same-origin'|'include'` 使用”include“发送带有跨源请求的 cookie。
 * @param {boolean} requestParameters.collectResourceTiming 如果为true，将为这些转换后的请求收集 Resource Timing API 信息，并在相关数据事件的resourceTiming属性中返回。
 * @param {string} requestParameters.referrerPolicy 表示请求的referrerPolicy的字符串。有关更多信息和可能的值，请参阅[Referrer Policy HTTP头页](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy).
 * @param {Callback} callback 回调函数
 * @returns {Cancelable} { cancel: () => { ... } }
 *
 * @example
 * ajax({url: 'data.json', type: "json", method: "GET"}, (res) => {})
 */
export declare function ajax(requestParameters: RequestParameters, callback: Callback<any>): Cancelable;
export {};
