import { Blocker } from './Blocker'; /** * ThrottleBlocker enforces a minimum time delay between executions. * * Useful for preventing rapid successive actions, such as button mashing. */ export class ThrottleBlocker extends Blocker { private lastExecutionTime = 0; constructor(private readonly delayMs: number) {} canExecute(): boolean { return Date.now() - this.lastExecutionTime >= this.delayMs; } block(): void { this.lastExecutionTime = Date.now(); } release(): void { // No-op for throttle blocker } }