import type { ZodSchema } from 'zod'; import type { ServerAdapter } from './adapter/ServerAdapter'; import type { ActionBox } from './ActionBox'; import type { ConnectionController } from './ConnectionController'; import type { Meta } from './actions/Meta'; export interface ServerConfig { adapter: ServerAdapter; actionBoxConstructor?: typeof ActionBox; headerSchema?: ZodSchema; metaAction?: typeof Meta; headerValidator?(cm: ConnectionController): Promise | void | unknown; onClientConnect?(cm: ConnectionController): Promise; onClientDisconnect?(cm: ConnectionController): Promise; onMetaActionReady?(metaActionBox: ActionBox): Promise; }