import EventEmitter from 'eventemitter3'; import { AdaptorPackageData } from '../../adaptor.mjs'; interface RemoteChannel { onClientEvent(fn: (e: unknown) => void): void; } /** * 这是 [dao3 游戏](https://dao3.fun/) 代码客户端适配器。 * ```ts * const remoteManager = new ClientSideRemoteChannelEventManager(remoteChannel) * * export const remoteAdaptor = { * every: remoteManager.onEvery.bind(remoteManager), * off: remoteManager.off.bind(remoteManager), * on: remoteManager.on.bind(remoteManager), * once: remoteManager.once.bind(remoteManager), * emit: (e) => { * remoteChannel.sendServerEvent(e) * }, * } satisfies Adaptor * * export const remote = new Remote( * remoteAdaptor, * { * deviceId: `client-${Math.random().toString(36).slice(2)}`, * } * ) * * void remote._.initConnection() * ``` */ declare class ClientSideRemoteChannelEventManager extends EventEmitter<{ [key: string]: [AdaptorPackageData]; }> { constructor(remoteChannel: RemoteChannel); onEvery(fn: (args: AdaptorPackageData) => void): void; } export { ClientSideRemoteChannelEventManager };