import { DeviceModel } from '../../../devices.model';
import { EventBus, CommandBus } from '@nestjs/cqrs';
import { Device } from '../../../device';
import { ConnectedState, ConnectedStateName, PowerState, PowerStateName } from '../../../states';
import { DeviceFactory } from '../../../device.factory';
import { Optional } from '../../../../../common';
import { BiologicalPresenceState, BiologicalPresenceStateName, EnablePresenceState, EnablePresenceStateName, MMWavePresenceState, MMWavePresenceStateName, DetectionSettingsStateName, DetectionSettingsState } from './presence.states';
export declare const Presence: 'Presence';
export type Presence = typeof Presence;
export declare class PresenceDevice extends Device<PresenceSensor> implements PresenceSensor {
    static readonly deviceType: string;
    protected isDebug: boolean;
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [MMWavePresenceStateName](): Optional<MMWavePresenceState>;
    get [BiologicalPresenceStateName](): Optional<BiologicalPresenceState>;
    get [EnablePresenceStateName](): Optional<EnablePresenceState>;
    get [DetectionSettingsStateName](): Optional<DetectionSettingsState>;
}
export declare class PresenceFactory extends DeviceFactory<PresenceDevice, PresenceSensor> {
    constructor();
}
export type PresenceSensor = {
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [MMWavePresenceStateName]: Optional<MMWavePresenceState>;
    [BiologicalPresenceStateName]: Optional<BiologicalPresenceState>;
    [EnablePresenceStateName]: Optional<EnablePresenceState>;
    [DetectionSettingsStateName]: Optional<DetectionSettingsState>;
};
//# sourceMappingURL=presence.d.ts.map