import { IKosModelLogger, KosContextLogger, KosCreationContext } from '../../../core';
import { FutureAwareContainer } from '../future/future-types';
import { TroubleResponse } from './services';
import { DeferAware, TroubleModel, TroubleOptions } from './types';
export declare const MODEL_TYPE = "trouble-model";
export declare class TroubleModelImpl<AdditionalData extends object = any> implements TroubleModel<AdditionalData>, IKosModelLogger {
    id: string;
    logger: KosContextLogger;
    private _troubleId;
    private _resolvable;
    type: string;
    futureHandler: FutureAwareContainer;
    ifaces: string[];
    clientData: unknown;
    info: unknown;
    role: string;
    color: string;
    tags: string[];
    data: AdditionalData;
    rank: number;
    servicePath: string;
    group?: string;
    createTime?: string;
    rawJson?: TroubleResponse<any>;
    private _mapped;
    constructor(modelId: string, { resolvable, tags, info, id, clientData, rank, ifaces, type, group, createTime, role, color, servicePath, rawJson, ...rest }: TroubleOptions, context: KosCreationContext);
    getTitleWithContext(context: string): string;
    getSubtitleWithContext(context: string): string;
    get rawId(): string;
    get title(): string;
    get subtitle(): string;
    get troubleId(): string;
    get resolvable(): boolean;
    get future(): import('../future/future-types').IFutureModel<Record<string, unknown>> | undefined;
    resolveMappedData(): Promise<any>;
    get deferredCompanion(): (import('../../../core').IKosDataModel & DeferAware) | undefined;
    get deferred(): boolean;
    get shouldDefer(): boolean;
    clearDefer(): void;
    defer(): void;
    getChildren(): import('../future/future-types').IFutureModel<Record<string, unknown>>[];
    resolve(tracker?: string): Promise<import('../..').FutureResponse | undefined>;
}
//# sourceMappingURL=trouble-model.d.ts.map