import { DeviceModel } from '../../../devices.model';
import { DeviceOpState } from '../../../states/device.state';
import { StateCommandAndStatus } from '../../../states/states.types';
import { PresenceState, PresenceStateTypeName } from '../../../states/presence.state';
import { Duration, Optional, Distance } from '../../../../../common';
export declare const MMWavePresenceStateName: PresenceStateTypeName<'mmWave'>;
export type MMWavePresenceStateName = typeof MMWavePresenceStateName;
export declare const BiologicalPresenceStateName: PresenceStateTypeName<'biological'>;
export type BiologicalPresenceStateName = typeof BiologicalPresenceStateName;
export declare class MMWavePresenceState extends PresenceState<'mmWave'> {
    constructor(device: DeviceModel);
}
export declare class BiologicalPresenceState extends PresenceState<'biological'> {
    constructor(device: DeviceModel);
}
export declare const EnablePresenceStateName: 'enablePresence';
export type EnablePresenceStateName = typeof EnablePresenceStateName;
export type EnablePresenceFlags = {
    mmWaveEnabled?: boolean;
    biologicalEnabled?: boolean;
};
export declare class EnablePresenceState extends DeviceOpState<EnablePresenceStateName, EnablePresenceFlags> {
    constructor(device: DeviceModel, defaultState?: EnablePresenceFlags);
    parseOpCommand(opCommand: number[]): void;
    protected readonly stateToCommand: (state: EnablePresenceFlags) => Optional<StateCommandAndStatus>;
}
export declare const DetectionSettingsStateName: 'detectionSettings';
export type DetectionSettingsStateName = typeof DetectionSettingsStateName;
export type DetectionSettings = {
    reportDetection?: Duration;
    absenceDuration?: Duration;
    detectionDistance?: Distance;
};
export declare class DetectionSettingsState extends DeviceOpState<DetectionSettingsStateName, DetectionSettings> {
    constructor(device: DeviceModel);
    parseOpCommand(opCommand: number[]): void;
    protected readonly stateToCommand: (state: DetectionSettings) => Optional<StateCommandAndStatus>;
}
//# sourceMappingURL=presence.states.d.ts.map