export type RebuildJobType = "site-resource" | "client"; export interface RebuildJob { type: RebuildJobType; id: number; } export interface RebuildJobHandlers { onSiteResource(siteResourceId: number): Promise; onClient(clientId: number): Promise; } export interface RebuildQueueManager { enqueue(job: RebuildJob): Promise; startProcessing(handlers: RebuildJobHandlers): void; } class NoopRebuildQueue implements RebuildQueueManager { async enqueue(_job: RebuildJob): Promise {} startProcessing(_handlers: RebuildJobHandlers): void {} } export const rebuildQueue: RebuildQueueManager = new NoopRebuildQueue();