import { UsbUpdateModel } from './usb-update-model';
import { UsbUpdateContainerOptions } from './types';
import { StorageDeviceContainerModel } from '../storage-device';
import { IKosDataModel, IKosIdentifiable, IKosModelContainer, IKosModelHolder, KosCreationContext, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "usb-update-container-model";
export type UsbUpdateContainerModel = PublicModelInterface<UsbUpdateContainerModelImpl>;
export declare class UsbUpdateContainerModelImpl implements IKosIdentifiable, IKosModelHolder<UsbUpdateModel>, IKosDataModel {
    id: string;
    private disposer?;
    storageService: StorageDeviceContainerModel;
    private _activeUpdate?;
    private logger;
    private _models;
    constructor(modelId: string, options: UsbUpdateContainerOptions, context: KosCreationContext);
    getModel(id: string): UsbUpdateModel | undefined;
    get models(): IKosModelContainer<UsbUpdateModel>;
    get data(): UsbUpdateModel[];
    addModel(model: UsbUpdateModel): void;
    removeModel(id: string): void;
    get activeUpdate(): UsbUpdateModel | undefined;
    reset(): void;
    clearActiveUpdate(): void;
    updateActiveUpdate(update: UsbUpdateModel): void;
    get isUsbInserted(): boolean;
    get hasAvailableUpdates(): boolean;
    syncAvailableUpdates(): Promise<void>;
    usbInsertedEffect(): void;
    init(): Promise<void>;
    unload(): void;
    activate(): Promise<void>;
    load(): Promise<void>;
}
//# sourceMappingURL=usb-update-container-model.d.ts.map