import { DurableEventData, DurableRequest, DurableRequestData } from "../data";
import { FetchRespondWith } from "./dispatch";
export declare const FETCH: "fetch";
type ScheduleFetchEventType = typeof FETCH;
export interface FetchEventResponseFn {
    (response: Response, request: Request, durableRequest?: DurableRequest): Promise<void | unknown> | void | unknown;
}
export interface FetchEventConfig {
    response?: FetchEventResponseFn | FetchEventResponseFn[];
}
export interface DurableFetchEventCache {
    name: string;
    always?: boolean;
}
export interface DurableFetchEventData extends DurableEventData {
    type: ScheduleFetchEventType;
    request: DurableRequestData;
    dispatch?: string | DurableEventData;
    cache?: string | RequestCache | DurableFetchEventCache;
    entrypoint?: string;
    entrypointArguments?: string[];
}
export interface FetchEvent extends Omit<DurableFetchEventData, "request">, FetchRespondWith {
    request: Request;
    waitUntil(promise: Promise<void | unknown>): void;
    tag?: string;
}
export declare let removeFetchScheduledFunction: () => void;
export {};
