import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { IManagedObject, InventoryBinaryService, InventoryService } from '@c8y/client';
import { AlertService, AssetTypesRealtimeService } from '@c8y/ngx-components';
import { AssetPropertiesItem } from './asset-properties.model';
import * as i0 from "@angular/core";
export declare class AssetPropertiesComponent implements OnChanges {
    private assetTypes;
    private inventory;
    private inventoryBinary;
    private alert;
    asset: IManagedObject;
    assetChange: EventEmitter<IManagedObject>;
    properties: IManagedObject[];
    assetType: IManagedObject;
    customProperties: AssetPropertiesItem[];
    isEdit: boolean;
    isLoading: boolean;
    POSITION_PROPERTY_KEY: string;
    constructor(assetTypes: AssetTypesRealtimeService, inventory: InventoryService, inventoryBinary: InventoryBinaryService, alert: AlertService);
    ngOnChanges(changes: SimpleChanges): void;
    loadAsset(): Promise<void>;
    resolveCustomProperties(managedObjects: IManagedObject[]): Promise<any[]>;
    deleteTitleFromMOJsonSchema(mo: IManagedObject): void;
    /**
     * This method is used to order the complex properties in the order specified by the user in asset properties screen.
     * @param mo - Managed object of the complex property associated with the asset.
     */
    orderComplexProperties(mo: IManagedObject): void;
    parseItem(mo: IManagedObject, properties: any, asset: any): Promise<AssetPropertiesItem[]>;
    toggleEdit(prop: AssetPropertiesItem): void;
    getFileManagedObject(id: string): Promise<IManagedObject>;
    save(propertyValue: any, prop: AssetPropertiesItem): Promise<void>;
    private updateUndefinedToPropTypeValue;
    private getTypeValue;
    private keepOrder;
    private uploadFiles;
    private updatePositionKeyLabel;
    private setItemRequired;
    static ɵfac: i0.ɵɵFactoryDeclaration<AssetPropertiesComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AssetPropertiesComponent, "c8y-asset-properties", never, { "asset": { "alias": "asset"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; }, { "assetChange": "assetChange"; }, never, never, false, never>;
}
//# sourceMappingURL=asset-properties.component.d.ts.map