import type { WithRequired } from '@apollo/utils.withrequired';
import type { ExecutionContext } from '@cloudflare/workers-types';
import { ApolloServer, BaseContext, ContextFunction } from '@apollo/server';
export type CloudflareWorkersHandler<TEnv> = (request: Request, env: TEnv, ctx: ExecutionContext) => Promise<Response>;
export interface CloudflareContextFunctionArgument<TEnv> {
    request: Request;
    env: TEnv;
    ctx: ExecutionContext;
}
export interface CloudflareWorkersHandlerOptions<TEnv, TContext extends BaseContext> {
    context?: ContextFunction<[
        CloudflareContextFunctionArgument<TEnv>
    ], TContext>;
}
export declare function startServerAndCreateCloudflareWorkersHandler<TEnv>(server: ApolloServer<BaseContext>, options?: CloudflareWorkersHandlerOptions<TEnv, BaseContext>): CloudflareWorkersHandler<TEnv>;
export declare function startServerAndCreateCloudflareWorkersHandler<TEnv, TContext extends BaseContext>(server: ApolloServer<TContext>, options: WithRequired<CloudflareWorkersHandlerOptions<TEnv, TContext>, 'context'>): CloudflareWorkersHandler<TEnv>;
//# sourceMappingURL=index.d.ts.map