import type { AnsiLogger } from 'matterbridge/logger';
import { RvcOperationalState, RvcRunMode } from 'matterbridge/matter/clusters';
import type { ResolvedState } from '../../share/stateResolver.js';
import type { RoborockVacuumCleaner } from '../../types/roborockVacuumCleaner.js';
export declare function isCleaningOrMappingRunMode(runMode: RvcRunMode.ModeTag): boolean;
export interface OperationSessionSnapshot {
    runMode: RvcRunMode.ModeTag;
    operationalState: RvcOperationalState.OperationalState;
    errorStateId: RvcOperationalState.ErrorState;
}
export declare function captureSessionSnapshot(robot: RoborockVacuumCleaner, log?: AnsiLogger): OperationSessionSnapshot;
export declare function captureSessionSnapshotFromResolved(resolvedState: ResolvedState): OperationSessionSnapshot;
export declare function trackOperationSessionTiming(robot: RoborockVacuumCleaner, before: OperationSessionSnapshot, after: OperationSessionSnapshot): void;
export declare function maybeEmitOperationCompletion(robot: RoborockVacuumCleaner, before: OperationSessionSnapshot, after: OperationSessionSnapshot, log: AnsiLogger): Promise<void>;
//# sourceMappingURL=operationCompletionTracker.d.ts.map