import type { BalanceCreation, OrderStateCreation, SourceID, } from '@bitemap/core'; import type {SourceInitializeConfig} from '@bitemap/server'; import type {OmitValueOfKey} from 'tslang'; import type {Bitmap} from './bitmap.js'; export class _BitmapSource { constructor( private bitmap: Bitmap, private config: SourceInitializeConfig & {id: SourceID}, ) {} writeOrderState( orderState: OmitValueOfKey, ): void { this.bitmap.socket.emit('order-state', { type: 'write', orderState: { ...orderState, sourceId: this.config.id as SourceID, } satisfies OrderStateCreation, }); } writeBalance(balance: OmitValueOfKey): void { this.bitmap.socket.emit('balance', { type: 'write', balance: { ...balance, sourceId: this.config.id as SourceID, }, }); } } export type BitmapSource = _BitmapSource;