import { Status } from "../../DataFrame";
import { IEvent } from "../../Event";
import { IDIService } from "../../IDIService";
import { ITypedEvent } from '../../TypedEvent';
import { ResponseResult } from "../FieldChangeResult";
export interface IControllerConfigurationService extends IDIService {
    OnEnteredConfigurationEvent(): IEvent;
    OnExitedConfigurationEvent(): IEvent;
    OnConfigurationTimeCheckedEvent(): ITypedEvent<Date>;
    CheckIfConfigurationHasChangedAsync(): Promise<boolean>;
    GetLastConfigurationChangeTimeAsync(): Promise<Date>;
    DidCofigurationChangeAsync(): Promise<boolean>;
    EnterConfigurationModeAsync(): Promise<void>;
    ExitConfigurationModeAsync(): Promise<void>;
    FactoryResetAsync(func: (progress: number) => void): Promise<Status>;
    RollbackLastUpdateAsync(func: (progress: number) => void): Promise<Status>;
    RestartControllerAsync(func: (progress: number) => void): Promise<Status>;
    GetControllerSystemTimeAsync(): Promise<Date | Status>;
    SetControllerSystemTimeAsync(date: Date): Promise<Status>;
    StartNtpTimeSynchronizationAsync(): Promise<Status>;
    ExportControllerConfigurationAsync(): Promise<HTMLAnchorElement | ResponseResult<ControllerConfigurationErrorCode>>;
    CanExportOrImportControllerConfigurationAsync(): Promise<boolean>;
    ImportControllerConfigurationAsync(file: File): Promise<Status>;
}
export declare enum ControllerConfigurationErrorCode {
    CannotExportConfiguration = "CannotExportConfiguration"
}
