///
import type { afterRequestPlugin, beforeRequestPlugin, PluginObject } from "./type/PluginType";
import type { BodyTypes } from "./type/BodyTypes";
import type { ResponseRecord } from "./type/ResponseType";
import { singleTypeObject } from "./singleTypeObject";
import { Method, Requester } from "./type/Requester";
export declare type LinkMassage = {
url: string | URL;
params?: singleTypeObject;
headers?: singleTypeObject;
body?: BodyTypes;
method?: Method;
requester?: Requester;
autoRedirect?: boolean;
cookie?: {
tag?: string;
read?: boolean;
write?: boolean;
};
};
export declare type LinkResult = Awaited>;
export declare class Link {
/** 默认的请求器 */
static DefaultRequester: Requester;
/** 更改全局的请求器 */
static registerRequester(requester: Requester): void;
url: URL;
autoRedirect: boolean;
cookie: LinkMassage["cookie"];
/** 用于不同环境的请求模块 */
requester: Requester;
constructor(input: LinkMassage);
private useDefaultPlugin;
get searchParams(): URLSearchParams;
/** 直接设置 URLsearchParams,
* @params valueOfParams 值为数组时,为插入多个,值为单个时,表示覆盖
* @description setParams({
* a:['这是添加'],
* b:"这是覆盖原来 Params 中的参数"
* })
*/
setParams(params: singleTypeObject): this;
headers: Headers;
/**
* 直接设置 Headers,
* @params valueOfParams 值为数组时,为插入多个,值为单个时,表示覆盖
* @description setParams({
* a: [ '这是添加' ],
* b: "这是覆盖原来的参数",
* c: [ '这是', '多个', '值' ]
* })
*/
setHeaders(params: singleTypeObject): this;
/** 直接设置即可 */
method: Method;
/** 直接设置即可 */
body: BodyTypes | null;
/** 请求堆栈 */
responses: ResponseRecord[];
/** 发送请求,并封装成一个可以使用的 */
send(): Promise<{
cookie: Record | null;
cookieText: string | null;
redirectTo: string | null;
text: (this: import("./type/ResponseType").RequestReturn & import("./ResponseTransform").ResponseHelper) => Promise;
json: (this: import("./type/ResponseType").RequestReturn & import("./ResponseTransform").ResponseHelper) => Promise;
blob: (this: import("./type/ResponseType").RequestReturn & import("./ResponseTransform").ResponseHelper) => Blob;
arrayBuffer: (this: import("./type/ResponseType").RequestReturn & import("./ResponseTransform").ResponseHelper) => ArrayBuffer;
status: number;
headers: Headers;
data: {
type: "text";
body: string;
} | {
type: "arrayBuffer";
body: BufferSource | Buffer;
} | {
type: "blob";
body: Blob;
} | {
type: "json";
body: Object;
} | {
type: "binary";
body: Blob;
} | {
type: "readableStream";
body: ReadableStream | null;
};
}>;
plugins: {
/** 等待返回之后进行的返回参数调整的插件 */
afterRequest: afterRequestPlugin[];
};
use(plugin: beforeRequestPlugin | PluginObject): this;
}