import { TroubleContainerOptions } from './types';
import { TroubleModel } from '../trouble/types';
import { TroubleResponse } from '../trouble/services';
import { IKosDataModel, IKosIdentifiable, KosContainerAwareWithProp, KosLoggerAware, KosModelRegistrationType, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "trouble-container-model";
export type TroubleContainerModel = PublicModelInterface<TroubleContainerModelImpl>;
export interface TroubleContainerModelImpl extends KosContainerAwareWithProp<TroubleModel, "troubles">, KosLoggerAware {
}
export declare class Troubles {
    static readonly INDEX_TROUBLES_BY_IFACE = "byIface";
    static readonly INDEX_TROUBLES_BY_TYPE = "byType";
    static readonly INDEX_TROUBLES_BY_GROUP = "byGroup";
    static readonly INDEX_TROUBLES_BY_DEFERRED = "byDeferred";
    static readonly SORT_KEY_RANK = "rank";
    static readonly TROUBLES_DEFERRED = "true";
}
export declare class TroubleContainerModelImpl implements IKosIdentifiable, IKosDataModel {
    static Registration: KosModelRegistrationType<TroubleContainerModelImpl, TroubleContainerOptions>;
    id: string;
    servicePath: string;
    constructor(modelId: string, options: TroubleContainerOptions);
    load(): Promise<void>;
    handleTroubleRemoved(id: string): void;
    handleTroubleAdded(trouble: TroubleResponse): void;
}
//# sourceMappingURL=trouble-container-model.d.ts.map