import { Timeout } from '@scandit/web-datacapture-core/build/js/private/utils/timeout.js';
import { SparkScanViewSettings } from './SparkScanViewSettings.js';
import '@scandit/web-datacapture-core';
import '@scandit/web-datacapture-core/build/js/private/Serializable';
import './SparkScanMiniPreviewSize.js';
import '../SparkScanScanningMode.js';
import '../SparkScanPreviewBehavior.js';
import '../SparkScanScanningBehavior.js';
import './SparkScanToastSettings.js';

interface SparkScanTimeoutManagerDelegate {
    onTriggerButtonCollapseTimeout(): void;
    onInactiveStateTimeout(): void;
    onResumeCapturingTimeout(): void;
}
declare class SparkScanTimeoutManager {
    readonly triggerButtonCollapseTimeout: Timeout;
    readonly inactiveStateTimeout: Timeout;
    resumeCapturingTimeout?: Timeout;
    private currentTimeout?;
    private readonly delegate;
    constructor(settings: SparkScanViewSettings, delegate: SparkScanTimeoutManagerDelegate);
    onSwitchToActiveState(holdingToScan: boolean): void;
    onSwitchToInactiveState(): void;
    onSwitchToIdleState(): void;
    onSwitchToErrorState(goToErrorState: boolean, resumeCapturingDelay: number): void;
    private startTimeout;
    restartCurrentTimeout(): void;
    stopCurrentTimeout(): void;
}

export { SparkScanTimeoutManager, type SparkScanTimeoutManagerDelegate };
