import type { Context as Ctx, Hono, MiddlewareHandler } from "hono";
import type { UpgradeWebSocket } from "hono/ws";
import { GrafservBase } from "../../../index.ts";
import type { GrafservConfig, Result } from "../../../interfaces.ts";
declare global {
    namespace Grafast {
        interface RequestContext {
            honov4: {
                ctx: Ctx;
            };
        }
    }
}
export declare class HonoGrafserv extends GrafservBase {
    private upgradeWebSocket?;
    constructor(config: GrafservConfig, upgradeWebSocket?: UpgradeWebSocket);
    makeWsHandler(upgradeWebSocket: UpgradeWebSocket): MiddlewareHandler;
    handleGraphQLEvent(ctx: Ctx): Promise<Response>;
    handleGraphiqlEvent(ctx: Ctx): Promise<Response>;
    handleGraphiqlStaticEvent(ctx: Ctx): Promise<Response>;
    handleEventStreamEvent(ctx: Ctx): Promise<Response>;
    send(ctx: Ctx, result: Result | null): Promise<Response>;
    addTo(app: Hono): Promise<void>;
    private setResponseHeaders;
}
/**
 * Creates a new instance of HonoGrafserv.
 *
 * @param config - The configuration object for Grafserv.
 * @param upgradeWebSocket - Optional parameter required when using websockets.
 *        Hono uses the upgradeWebsocket helper depending on the environment.
 *        Refer to https://hono.dev/docs/helpers/websocket for more details.
 * @returns An instance of HonoGrafserv.
 */
export declare const grafserv: (config: GrafservConfig, upgradeWebSocket?: UpgradeWebSocket) => HonoGrafserv;
//# sourceMappingURL=index.d.ts.map