/**
 * Manages beat scheduling with suspend/resume support
 */
export default class BeatScheduler {
    private timer;
    private suspensionTime;
    private suspended;
    /**
     * Create a new beat scheduler
     * @param callback - Callback to invoke on each beat, receives diffTime
     * @param intervalMs - Beat interval in milliseconds
     */
    constructor(callback: (diffTime: number) => void, intervalMs: number);
    /**
     * Start the beat timer
     */
    start(): void;
    /**
     * Stop the beat timer
     */
    stop(): void;
    /**
     * Check if timer is currently running
     */
    get isRunning(): boolean;
    /**
     * Suspend the beat timer and return the elapsed time
     * @returns Elapsed time since timer started
     */
    suspend(): number;
    /**
     * Resume the beat timer
     * @param expireTimeMs - Session expiration timeout in milliseconds
     * @returns Object with shouldBeat flag and diffTime
     */
    resume(expireTimeMs: number): {
        shouldBeat: boolean;
        diffTime: number;
    };
    /**
     * Check if currently suspended
     */
    isSuspended(): boolean;
    /**
     * Get the internal timer (for advanced use cases)
     */
    getTimer(): any;
}
