import { PowerSource, RvcOperationalState } from 'matterbridge/matter/clusters';
import { AnsiLogger } from 'matterbridge/logger';
import { Config } from './config-types.js';
import { BatteryPowerSourceOptions, RvcCleanModeOptions } from './endpoint-360-rvc.js';
import { EndpointBase, EndpointOptionsBase } from './endpoint-base.js';
import { BehaviorDevice360, EndpointCommands360, RvcCleanMode360, RvcRunMode360 } from './endpoint-360-behavior.js';
export interface EndpointOptions360 extends EndpointOptionsBase {
    powerSource: BatteryPowerSourceOptions;
    rvcCleanMode: RvcCleanModeOptions;
}
export interface UpdatePowerSource360 {
    activeBatChargeFaults: PowerSource.BatChargeFault[];
    activeBatFaults: PowerSource.BatFault[];
    batChargeLevel: PowerSource.BatChargeLevel;
    batChargeState: PowerSource.BatChargeState;
    batPercentRemaining: number;
    status: PowerSource.PowerSourceStatus;
}
export interface UpdateRvcOperationalState360 {
    isActive: boolean;
    operationalError: RvcOperationalState.ErrorStateStruct;
    operationalState: RvcOperationalState.OperationalState;
}
export declare class Endpoint360 extends EndpointBase {
    readonly options: EndpointOptions360;
    readonly behaviorDevice360: BehaviorDevice360;
    startActive: number;
    constructor(log: AnsiLogger, config: Config, options: EndpointOptions360);
    setCommandHandler360<Command extends keyof EndpointCommands360>(command: Command, handler: EndpointCommands360[Command]): this;
    updatePowerSource(attributes: UpdatePowerSource360): Promise<void>;
    updateRvcRunMode(runMode: RvcRunMode360): Promise<void>;
    updateRvcCleanMode(cleanMode: RvcCleanMode360): Promise<void>;
    updateRvcOperationalState(attributes: UpdateRvcOperationalState360): Promise<void>;
}
//# sourceMappingURL=endpoint-360.d.ts.map