import { RequestQuery } from "../data";
import { InternalBucket } from "../storage-buckets/internal";
export interface DurableCacheStorageConfig {
    getDurableCacheStorageOrigin?(): string;
}
export interface DurableCacheQueryOptions extends CacheQueryOptions {
}
export interface DurableCacheOptions {
    name: string;
    url(): string;
}
export declare class DurableCache implements Cache {
    name: string;
    url: () => string;
    constructor({ name, url }: DurableCacheOptions);
    add(info: RequestQuery, init?: Pick<RequestInit, "signal">): Promise<void>;
    addAll(requests: RequestQuery[]): Promise<void>;
    delete(requestQuery?: RequestQuery, options?: DurableCacheQueryOptions): Promise<boolean>;
    match(requestQuery: RequestQuery, options?: DurableCacheQueryOptions): Promise<Response | undefined>;
    matchAll(requestQuery?: RequestQuery, options?: DurableCacheQueryOptions): Promise<ReadonlyArray<Response>>;
    put(requestQuery: RequestInfo | URL, response: Response): Promise<void>;
    keys(requestQuery?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
}
export interface DurableCacheStorageOptions {
    url(): string;
    internalBucket?: InternalBucket;
}
export declare class DurableCacheStorage implements CacheStorage {
    private readonly caches;
    private readonly url;
    private readonly internalBucket;
    constructor(options: DurableCacheStorageOptions);
    open(cacheName: string): Promise<DurableCache>;
    has(cacheName: string): Promise<boolean>;
    keys(): Promise<string[]>;
    delete(cacheName: string): Promise<boolean>;
    match(requestQuery: RequestQuery, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
}
export declare const caches: DurableCacheStorage;
