import { Context } from 'hono';
import { WSEvents } from 'hono/ws';
import { S as SockaContractBound } from '../socka-report-error-BALZPjd1.js';
import { S as SockaWebSocketSession, c as SockaWebSocketInit, a as SockaWebSocketSessionConfigUnion } from '../SockaWebSocketSession-CmEtwVE-.js';
import '@standard-schema/spec';

type SockaHonoCloudflareOptions<TContract extends SockaContractBound, TData> = {
    sessions?: Map<WebSocket, SockaWebSocketSession<TContract, TData>>;
    sockaInit?: (c: Context) => SockaWebSocketInit | undefined;
    resolveScope?: (c: Context) => {
        sessions: Map<WebSocket, SockaWebSocketSession<TContract, TData>>;
        config: SockaWebSocketSessionConfigUnion<TContract, TData>;
    };
};
/**
 * Callback for `upgradeWebSocket` from `hono/cloudflare-workers` (no `onOpen`;
 * the session is created on first `onMessage`).
 */
declare function sockaHonoCloudflare<TContract extends SockaContractBound, TData>(config: SockaWebSocketSessionConfigUnion<TContract, TData>, options?: SockaHonoCloudflareOptions<TContract, TData>): (c: Context) => Omit<WSEvents<WebSocket>, "onOpen">;

export { type SockaHonoCloudflareOptions, sockaHonoCloudflare };
