import { IManagedObject } from '@c8y/client';
import { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';
export declare enum RepositoryType {
    FIRMWARE = "c8y_Firmware",
    SOFTWARE = "c8y_Software",
    CONFIGURATION = "c8y_ConfigurationDump",
    PROFILE = "c8y_Profile"
}
export declare const REPOSITORY_BINARY_TYPES: {
    c8y_Software: string;
    c8y_Firmware: string;
    c8y_ConfigurationDump: string;
};
export interface ModalModel {
    selected?: {
        id?: string;
        name?: string;
        [key: string]: any;
    };
    version?: string;
    dependency?: {
        c8y_Firmware: {
            version: string;
        };
    };
    patchVersion?: string;
    description?: string;
    deviceType?: string;
    softwareType?: any;
    configurationType?: string;
    binary?: {
        file?: File;
        url?: string;
    };
    c8y_Global?: any;
}
export interface RepositoryCategory extends Partial<IManagedObject> {
    type: string;
    description?: string;
    c8y_Filter?: {
        type: string;
    };
    softwareType?: string;
}
export interface FirmwareBinary extends Partial<IManagedObject> {
    type: 'c8y_FirmwareBinary';
    c8y_Firmware: {
        version: string;
        url: string;
    };
}
export interface FirmwarePatchBinary extends FirmwareBinary {
    c8y_Patch: {
        dependency: string;
    };
}
export interface SoftwareBinary extends Partial<IManagedObject> {
    type: string;
    c8y_Software: {
        version: string;
        url: string;
    };
}
export type RepositoryBinary = FirmwareBinary | SoftwareBinary | FirmwarePatchBinary;
export interface SelectedRepositoryBinary {
    id?: string;
    name: string;
    version: string;
    url: string;
    dependency?: string;
    c8y_Patch?: boolean;
    isPatch?: boolean;
    patchDependency?: string;
    softwareType?: string;
}
export interface DeviceFirmware {
    version: string;
    url: string;
    name: string;
}
export interface DeviceSoftware {
    name: string;
    version?: string;
    url: string;
    softwareType?: string;
}
export interface DeviceSoftwareChange extends DeviceSoftware {
    action: 'install' | 'delete';
}
export interface ConfigurationSnapshot {
    id?: string;
    time: string;
    name: string;
    binaryUrl?: string;
    binary?: any;
    binaryType?: any;
    deviceType?: string;
    configurationType?: string;
    description?: string;
}
export interface SupportedConfigurationItem {
    name: string;
    deviceType?: string;
    configurationType?: string;
    isLegacy?: boolean;
}
export interface DeviceConfigurationListEmptyState {
    icon?: SupportedIconsSuggestions;
    title?: string;
    text?: string;
}
export declare enum DeviceConfigurationOperation {
    UPLOAD_CONFIG = "c8y_UploadConfigFile",
    DOWNLOAD_CONFIG = "c8y_DownloadConfigFile",
    CONFIG = "c8y_Configuration",
    SEND_CONFIG = "c8y_SendConfiguration"
}
export interface FilterCriteria {
    name?: string;
    [key: string]: any;
}
export declare const PRODUCT_EXPERIENCE_REPOSITORY_SHARED: {
    readonly SOFTWARE: {
        readonly EVENTS: {
            readonly REPOSITORY: "softwareRepository";
            readonly DEVICE_TAB: "deviceSoftware";
        };
        readonly COMPONENTS: {
            readonly ADD_SOFTWARE_MODAL: "add-software-modal";
            readonly DEVICE_SOFTWARE_CHANGES: "device-software-changes";
            readonly DEVICE_SOFTWARE_LIST: "device-software-list";
        };
        readonly ACTIONS: {
            readonly APPLY_SOFTWARE_CHANGES: "applySoftwareChanges";
            readonly CLEAR_SOFTWARE_CHANGES: "clearSoftwareChanges";
            readonly OPEN_INSTALL_SOFTWARE: "openInstallSoftwareModal";
            readonly OPEN_UPDATE_SOFTWARE: "openUpdateSoftwareModal";
            readonly DELETE_SOFTWARE: "deleteSoftware";
        };
        readonly RESULTS: {
            readonly ADD_SOFTWARE: "addSoftware";
            readonly ADD_SOFTWARE_VERSION: "addSoftwareVersion";
            readonly EDIT_SOFTWARE: "editSoftware";
        };
    };
    readonly FIRMWARE: {
        readonly EVENTS: {
            readonly REPOSITORY: "firmwareRepository";
            readonly DEVICE_TAB: "deviceFirmware";
        };
        readonly COMPONENTS: {
            readonly ADD_FIRMWARE_MODAL: "add-firmware-modal";
            readonly ADD_FIRMWAR_PATCH_MODAL: "add-firmware-patch-modal";
            readonly FIRMWARE_DEVICE_TAB: "firmware-device-tab";
            readonly DEVICE_FIRMWARE_LIST: "device-firmware-list";
        };
        readonly ACTIONS: {
            readonly OPEN_INSTALL_FIRMWARE_DIALOG: "openInstallFirmwareDialog";
            readonly OPEN_REPLACE_FIRMWARE_DIALOG: "openReplaceFirmwareDialog";
            readonly OPEN_INSTALL_FIRMWARE_PATCH_DIALOG: "openInstallFirmwarePatchDialog";
        };
        readonly RESULTS: {
            readonly ADD_FIRMWARE: "addFirmware";
            readonly ADD_FIRMWARE_VERSION: "addFirmwareVersion";
            readonly ADD_FIRMWARE_PATCH: "addFirmwarePatch";
            readonly EDIT_FIRMWARE: "editFirmware";
            readonly CREATE_FIRMWARE_UPDATE_OPERATION: "createFirmwareUpdateOperation";
        };
    };
    readonly SHARED: {
        readonly COMPONENTS: {
            readonly REPOSITORY_SELECT_MODAL: "repository-select-modal";
            readonly SELECT_CONFIGURATION_MODAL: "select-configuration-modal";
        };
    };
};
//# sourceMappingURL=repository.model.d.ts.map