import { Timeout } from './timeout.js'; import { DummyAddonDependency } from '../accessory/base.js'; import { LimiterConfig } from '../model/types.js'; export default class Limiter extends Timeout { private readonly config; static new(dependency: DummyAddonDependency, config?: LimiterConfig): Limiter | undefined; private limit; private readonly identifier; private constructor(); start(callback: () => Promise): void; cancel(): void; reset(): void; teardown(): void; private resetTimeRemaining; private resetPeriod; private storeLimit; private logTimeRemaining; }