import * as graphql_yoga from 'graphql-yoga';
import { GetContext } from 'fuse';
import { NextPageContext, NextApiRequest, NextApiResponse } from 'next';
import { StellateOptions } from '../utils/yoga-helpers.ts';

declare function createAPIRouteHandler<AdditionalContext extends Record<string, unknown> = any>(options?: {
    context?: GetContext<AdditionalContext>;
    stellate?: StellateOptions;
}): (request: Request, context: NextPageContext) => Response | Promise<Response>;
declare function createPagesRouteHandler<AdditionalContext extends Record<string, unknown> = any>(options?: {
    context?: GetContext<AdditionalContext>;
    stellate?: StellateOptions;
}): graphql_yoga.YogaServerInstance<{
    req: NextApiRequest;
    res: NextApiResponse;
}, {}>;

export { createAPIRouteHandler, createPagesRouteHandler };
