import type { GatewayDispatchPayload, GatewaySendPayload } from '../../types'; import type { ShardManager, ShardManagerOptions } from '../../websocket'; import type { MakePartial } from '../types/util'; export interface WatcherOptions extends MakePartial< Omit, | 'compress' | 'presence' | 'properties' | 'shardEnd' | 'shardStart' | 'spawnShardDelay' | 'totalShards' | 'url' | 'version' | 'resharding' | 'debug' > { filePath: string; transpileCommand: string; srcPath: string; argv?: string[]; handlePayload?: ShardManagerOptions['handlePayload']; info?: ShardManagerOptions['info']; token?: ShardManagerOptions['token']; intents?: ShardManagerOptions['intents']; } export interface WatcherPayload { type: 'PAYLOAD'; shardId: number; payload: GatewayDispatchPayload; } export interface WatcherSendToShard { type: 'SEND_TO_SHARD'; shardId: number; payload: GatewaySendPayload; }