import { IKosDataModel } from '../kosModel';
import { ObservableMap } from 'mobx';

export interface KosContext {
    get(key: string): any;
    set(key: string, value: any): void;
}
export declare class KosContextBean implements KosContext {
    private _context;
    private _parent?;
    private _id;
    constructor(id: string);
    setParent(parent: string): void;
    get id(): string;
    get context(): ObservableMap<string, any>;
    get parentModel(): IKosDataModel | undefined;
    get companionModels(): IKosDataModel[];
    get(key: string): any;
    set(key: string, value: any): void;
    remove(key: string): void;
    clear(): void;
}
export declare const KosContextManager: {
    createContext: (id: string, parentId?: string) => KosContextBean;
    getContext: (id: string) => KosContextBean | undefined;
    deleteContext: (id: string) => void;
    setParentContext: (id: string, parentId: string) => void;
    rootContext: () => KosContextBean | undefined;
};
export declare const resolveKosContext: (model: IKosDataModel) => KosContextBean | undefined;
//# sourceMappingURL=kos-context-manager.d.ts.map