import { Context } from 'hono';
import { q as UniversalWebSocket, o as RivetEvent, n as RivetCloseEvent, p as RivetMessageEvent, A as ActorDriver, R as RunConfig, E as Encoding } from './connection-CaBl-i8R.js';
import { WSContext } from 'hono/ws';

interface UpgradeWebSocketArgs {
    onOpen: (event: any, ws: WSContext) => void;
    onMessage: (event: any, ws: WSContext) => void;
    onClose: (event: any, ws: WSContext) => void;
    onError: (error: any, ws: WSContext) => void;
}
/**
 * InlineWebSocketAdapter implements a WebSocket-like interface
 * that connects to a UpgradeWebSocketArgs handler
 */
declare class InlineWebSocketAdapter2 implements UniversalWebSocket {
    #private;
    readonly CONNECTING: 0;
    readonly OPEN: 1;
    readonly CLOSING: 2;
    readonly CLOSED: 3;
    constructor(handler: UpgradeWebSocketArgs);
    get readyState(): 0 | 1 | 2 | 3;
    get binaryType(): "arraybuffer" | "blob";
    set binaryType(value: "arraybuffer" | "blob");
    get bufferedAmount(): number;
    get extensions(): string;
    get protocol(): string;
    get url(): string;
    send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
    /**
     * Closes the connection
     */
    close(code?: number, reason?: string): void;
    addEventListener(type: string, listener: (ev: any) => void): void;
    removeEventListener(type: string, listener: (ev: any) => void): void;
    dispatchEvent(event: RivetEvent): boolean;
    get onopen(): ((event: RivetEvent) => void) | null;
    set onopen(handler: ((event: RivetEvent) => void) | null);
    get onclose(): ((event: RivetCloseEvent) => void) | null;
    set onclose(handler: ((event: RivetCloseEvent) => void) | null);
    get onerror(): ((event: RivetEvent) => void) | null;
    set onerror(handler: ((event: RivetEvent) => void) | null);
    get onmessage(): ((event: RivetMessageEvent) => void) | null;
    set onmessage(handler: ((event: RivetMessageEvent) => void) | null);
}

/**
 * Creates a WebSocket connection handler
 */
declare function handleWebSocketConnect(c: Context | undefined, runConfig: RunConfig, actorDriver: ActorDriver, actorId: string, encoding: Encoding, parameters: unknown, authData: unknown): Promise<UpgradeWebSocketArgs>;
declare function handleRawWebSocketHandler(c: Context | undefined, path: string, actorDriver: ActorDriver, actorId: string, authData: unknown): Promise<UpgradeWebSocketArgs>;
declare const HEADER_ACTOR_QUERY = "X-RivetKit-Query";
declare const HEADER_ENCODING = "X-RivetKit-Encoding";
declare const HEADER_EXPOSE_INTERNAL_ERROR = "X-RivetKit-Expose-Internal-Error";
declare const HEADER_CONN_PARAMS = "X-RivetKit-Conn-Params";
declare const HEADER_AUTH_DATA = "X-RivetKit-Auth-Data";
declare const HEADER_ACTOR_ID = "X-RivetKit-Actor";
declare const HEADER_CONN_ID = "X-RivetKit-Conn";
declare const HEADER_CONN_TOKEN = "X-RivetKit-Conn-Token";
/**
 * Headers that publics can send from public clients.
 *
 * Used for CORS.
 **/
declare const ALLOWED_PUBLIC_HEADERS: string[];

export { ALLOWED_PUBLIC_HEADERS as A, HEADER_ACTOR_ID as H, InlineWebSocketAdapter2 as I, type UpgradeWebSocketArgs as U, handleWebSocketConnect as a, HEADER_ACTOR_QUERY as b, HEADER_AUTH_DATA as c, HEADER_CONN_ID as d, HEADER_CONN_PARAMS as e, HEADER_CONN_TOKEN as f, HEADER_ENCODING as g, handleRawWebSocketHandler as h, HEADER_EXPOSE_INTERNAL_ERROR as i };
