import type { RouteDefinition } from '../../../../server/future/route-definitions/route-definition';
import type { RouteModule } from '../../../../server/future/route-modules/route-module';
import { type AdapterOptions } from '../../../../server/web/adapter';
declare type WrapOptions = Partial<Pick<AdapterOptions, 'page'>>;
/**
 * HandlerProvider is a wrapper around a route handler that allows the handler
 * to be patched and reused.
 *
 * This should only be used in the edge runtime.
 */
export declare class EdgeModuleWrapper {
    private readonly routeModule;
    private readonly matcher;
    private constructor();
    /**
     * This will wrap a module with the EdgeModuleWrapper and return a function
     * that can be used as a handler for the edge runtime.
     *
     * @param module the module to wrap
     * @param options any options that should be passed to the adapter and
     *                override the ones passed from the runtime
     * @returns a function that can be used as a handler for the edge runtime
     */
    static wrap(routeModule: RouteModule<RouteDefinition>, options?: WrapOptions): (opts: AdapterOptions) => Promise<import("../../../../server/web/types").FetchEventResult>;
    private handler;
}
export {};
