import { ITimer, TimerType } from '../../../FrontApplet/Management/helpers/TimerHelper';
import { IProprietaryTimer } from '../../../FrontApplet/Management/helpers/ProprietaryTimerHelper';
import { EmptyObject } from '../../EmptyObject';
import { IScheduledRebootActions, WeekdayType } from '../../../FrontApplet/Management/Power/IPower';
export type PowerRequests = PowerSystemRebootRequest | PowerSystemRebootResult | PowerAppRestartRequest | ManagementPowerGetTimersRequest | ManagementPowerSetTimerRequest | ManagementPowerUnsetTimerRequest | ManagementPowerGetProprietaryTimersRequest | ManagementPowerSetProprietaryTimerRequest | ManagementPowerUnsetProprietaryTimerRequest | ManagementPowerClearScheduledRebootsRequest | ManagementPowerGetScheduledRebootsRequest | ManagementPowerRemoveScheduledRebootRequest | ManagementPowerSetScheduledRebootRequest;
export declare const PowerSystemRebootRequest = "sos.Monitoring.Management.Power.PowerSystemRebootRequest";
export interface PowerSystemRebootRequest {
    type: typeof PowerSystemRebootRequest;
}
export declare const PowerSystemRebootResult = "sos.Monitoring.Management.Power.PowerSystemRebootResult";
export interface PowerSystemRebootResult {
    type: typeof PowerSystemRebootResult;
    result: EmptyObject;
}
export declare const PowerAppRestartRequest = "sos.Monitoring.Management.Power.PowerAppRestartRequest";
export interface PowerAppRestartRequest {
    type: typeof PowerAppRestartRequest;
}
export declare const PowerAppRestartResult = "sos.Monitoring.Management.Power.PowerAppRestartResult";
export interface PowerAppRestartResult {
    type: typeof PowerAppRestartResult;
    result: EmptyObject;
}
export declare const ManagementPowerGetTimersRequest = "sos.Monitoring.Management.Power.ManagementPowerGetTimersRequest";
export interface ManagementPowerGetTimersRequest {
    type: typeof ManagementPowerGetTimersRequest;
}
export declare const ManagementPowerGetTimersResult = "sos.Monitoring.Management.Power.ManagementPowerGetTimersResult";
export interface ManagementPowerGetTimersResult {
    type: typeof ManagementPowerGetTimersResult;
    timers: ITimer[];
}
export declare const ManagementPowerSetTimerRequest = "sos.Monitoring.Management.Power.ManagementPowerSetTimerRequest";
export interface ManagementPowerSetTimerRequest {
    type: typeof ManagementPowerSetTimerRequest;
    timerType: keyof typeof TimerType;
    timeOn: string | null;
    timeOff: string | null;
    weekdays: string[];
    volume: number;
}
export declare const ManagementPowerSetTimerResult = "sos.Monitoring.Management.Power.ManagementPowerSetTimerResult";
export interface ManagementPowerSetTimerResult {
    type: typeof ManagementPowerSetTimerResult;
    result: EmptyObject;
}
export declare const ManagementPowerUnsetTimerRequest = "sos.Monitoring.Management.Power.ManagementPowerUnsetTimerRequest";
export interface ManagementPowerUnsetTimerRequest {
    type: typeof ManagementPowerUnsetTimerRequest;
    timerType: keyof typeof TimerType;
}
export declare const ManagementPowerUnsetTimerResult = "sos.Monitoring.Management.Power.ManagementPowerUnsetTimerResult";
export interface ManagementPowerUnsetTimerResult {
    type: typeof ManagementPowerUnsetTimerResult;
    result: EmptyObject;
}
export declare const ManagementPowerGetProprietaryTimersRequest = "sos.Monitoring.Management.Power.ManagementPowerGetProprietaryTimersRequest";
export interface ManagementPowerGetProprietaryTimersRequest {
    type: typeof ManagementPowerGetProprietaryTimersRequest;
}
export declare const ManagementPowerGetProprietaryTimersResult = "sos.Monitoring.Management.Power.ManagementPowerGetProprietaryTimersResult";
export interface ManagementPowerGetProprietaryTimersResult {
    type: typeof ManagementPowerGetProprietaryTimersResult;
    result: IProprietaryTimer[];
}
export declare const ManagementPowerSetProprietaryTimerRequest = "sos.Monitoring.Management.Power.ManagementPowerSetProprietaryTimerRequest";
export interface ManagementPowerSetProprietaryTimerRequest {
    type: typeof ManagementPowerSetProprietaryTimerRequest;
    timerType: keyof typeof TimerType;
    timeOn: string | null;
    timeOff: string | null;
    weekdays: string[];
    keepAppletRunning?: boolean;
}
export declare const ManagementPowerSetProprietaryTimerResult = "sos.Monitoring.Management.Power.ManagementPowerSetProprietaryTimerResult";
export interface ManagementPowerSetProprietaryTimerResult {
    type: typeof ManagementPowerSetProprietaryTimerResult;
    result: EmptyObject;
}
export declare const ManagementPowerUnsetProprietaryTimerRequest = "sos.Monitoring.Management.Power.ManagementPowerUnsetProprietaryTimerRequest";
export interface ManagementPowerUnsetProprietaryTimerRequest {
    type: typeof ManagementPowerUnsetProprietaryTimerRequest;
    timerType: keyof typeof TimerType;
}
export declare const ManagementPowerUnsetProprietaryTimerResult = "sos.Monitoring.Management.Power.ManagementPowerUnsetProprietaryTimerResult";
export interface ManagementPowerUnsetProprietaryTimerResult {
    type: typeof ManagementPowerUnsetProprietaryTimerResult;
    result: EmptyObject;
}
export declare const ManagementPowerClearScheduledRebootsRequest = "sos.Monitoring.Management.Power.ManagementPowerClearScheduledRebootsRequest";
export interface ManagementPowerClearScheduledRebootsRequest {
    type: typeof ManagementPowerClearScheduledRebootsRequest;
}
export declare const ManagementPowerClearScheduledRebootsResult = "sos.Monitoring.Management.Power.ManagementPowerClearScheduledRebootsResult";
export interface ManagementPowerClearScheduledRebootsResult {
    type: typeof ManagementPowerClearScheduledRebootsResult;
    result: EmptyObject;
}
export declare const ManagementPowerGetScheduledRebootsRequest = "sos.Monitoring.Management.Power.ManagementPowerGetScheduledRebootsRequest";
export interface ManagementPowerGetScheduledRebootsRequest {
    type: typeof ManagementPowerGetScheduledRebootsRequest;
}
export declare const ManagementPowerGetScheduledRebootsResult = "sos.Monitoring.Management.Power.ManagementPowerGetScheduledRebootsResult";
export interface ManagementPowerGetScheduledRebootsResult {
    type: typeof ManagementPowerGetScheduledRebootsResult;
    result: IScheduledRebootActions[];
}
export declare const ManagementPowerRemoveScheduledRebootRequest = "sos.Monitoring.Management.Power.ManagementPowerRemoveScheduledRebootRequest";
export interface ManagementPowerRemoveScheduledRebootRequest {
    type: typeof ManagementPowerRemoveScheduledRebootRequest;
    id: string;
}
export declare const ManagementPowerRemoveScheduledRebootResult = "sos.Monitoring.Management.Power.ManagementPowerRemoveScheduledRebootResult";
export interface ManagementPowerRemoveScheduledRebootResult {
    type: typeof ManagementPowerRemoveScheduledRebootResult;
    result: EmptyObject;
}
export declare const ManagementPowerSetScheduledRebootRequest = "sos.Monitoring.Management.Power.ManagementPowerSetScheduledRebootRequest";
export interface ManagementPowerSetScheduledRebootRequest {
    type: typeof ManagementPowerSetScheduledRebootRequest;
    weekdays: WeekdayType[];
    time: string;
}
export declare const ManagementPowerSetScheduledRebootResult = "sos.Monitoring.Management.Power.ManagementPowerSetScheduledRebootResult";
export interface ManagementPowerSetScheduledRebootResult {
    type: typeof ManagementPowerSetScheduledRebootResult;
    result: EmptyObject;
}
