import { StorageDeviceContainerOptions } from './types';
import { StorageDeviceModel } from './storage-device-model';
import { StorageDeviceResponse } from './services';
import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
import { IKosModelContainer } from '../../../core/core/kos-container-model';
import { IKosIdentifiable, IKosModelHolder, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "storage-device-container-model";
export declare const TOPIC_STORAGE_AVAILABILITY = "/kos/storage";
export type StorageDeviceContainerModel = PublicModelInterface<StorageDeviceContainerModelImpl>;
/**
 * Storage Device Container Model
 * @category Model
 */
export declare class StorageDeviceContainerModelImpl implements IKosIdentifiable, IKosModelHolder<StorageDeviceModel>, IKosDataModel {
    id: string;
    private logger;
    private _models;
    constructor(modelId: string, options: StorageDeviceContainerOptions, context: KosCreationContext);
    getModel(id: string): StorageDeviceModel | undefined;
    get models(): IKosModelContainer<StorageDeviceModel>;
    get data(): StorageDeviceModel[];
    addModel(model: StorageDeviceModel): void;
    removeModel(id: string): void;
    init(): Promise<void>;
    get isStorageInserted(): boolean;
    get volumes(): StorageDeviceModel[];
    handleStorageAvailability(devices: StorageDeviceResponse[]): void;
    load(): Promise<void>;
}
//# sourceMappingURL=storage-device-container-model.d.ts.map