import { BaseRequestOptions, BodyType, HookFetchPlugin, StreamContext } from "./types-DOFlmwin.js";

//#region src/utils/baseClass.d.ts
declare class HookFetchRequest<T = unknown, E = unknown> implements PromiseLike<T> {
  #private;
  constructor(options: BaseRequestOptions<unknown, BodyType, E>);
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
  catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
  finally(onfinally?: (() => void) | null | undefined): void;
  abort(): void;
  json(): Promise<T>;
  blob(): Promise<Blob>;
  text(): Promise<string>;
  arrayBuffer(): Promise<ArrayBuffer>;
  formData(): Promise<FormData>;
  bytes(): Promise<Uint8Array<ArrayBufferLike>>;
  __injectPlugins__(plugins: HookFetchPlugin<any, any, any, any>[]): void;
  stream<U = T>(): AsyncGenerator<StreamContext<U> | StreamContext<null>, void, unknown>;
  retry(): HookFetchRequest<unknown, E>;
  get response(): Promise<Response>;
}
//#endregion
export { HookFetchRequest };