/** * Shared 100ms tick-loop primitive: runs `callback` roughly every 100ms via * a Web Worker timer (immune to a backgrounded tab's `setInterval` * throttling) with a plain `setInterval` fallback when Workers aren't * available (e.g. some Tauri WebViews, or `new Blob()`/`URL.createObjectURL` * unsupported). Guarantees no re-entrant overlap: if `callback` is still * running when the next tick fires, that tick is skipped rather than * queued or run concurrently. * * Extracted from `BaseCoyoteProtocolAdapter` (the mechanism was originally * inline there) so `OpossumVibrateAdapter`'s vibration-pattern tick can * reuse the identical Worker/fallback/reentrancy behavior — both device * families need the exact same "keep streaming a B0-shaped packet every * 100ms, survive backgrounding, never overlap writes" guarantee. */ export declare class ProtocolTickLoop { private worker; private interval; private inFlight; /** No-op if already running (matches the pre-extraction behavior). */ start(callback: () => Promise): void; stop(): void; /** Resolves once any in-flight `callback` invocation has finished. */ waitForIdle(): Promise; private runOnce; private createWorker; } //# sourceMappingURL=tick-loop.d.ts.map