import { AsyncLocalStorage } from 'node:async_hooks';
import type { Plugin } from '@envelop/core';
export type CreateRequestCachePluginOptions = {
    storage?: AsyncLocalStorage<Record<string, unknown>>;
};
export declare const createRequestCachePlugin: (options?: CreateRequestCachePluginOptions) => {
    cache: <T extends (...args: any[]) => any>(callback: T, keys?: string[]) => T;
    evict: () => void;
    useRequestCache: () => Plugin;
};
export declare const cache: <T extends (...args: any[]) => any>(callback: T, keys?: string[]) => T, evict: () => void, useRequestCache: () => Plugin;
