import { Functional, FunctionalEvents } from '../../../Class/Functional';
import { ObjectUpdateType } from '../../../Object';
import { System } from '../../../system';
import { Component_ } from '../../../types/interface/Component';
import { J } from '../../../types/interface/J';
import { Unlisten } from '../../../types/Unlisten';
export interface I {
    element: Component_;
}
export interface O {
}
export declare type _Context_EE = {
    _resize: [{
        width: number;
        height: number;
    }];
};
export declare type _ContextEvents = FunctionalEvents<_Context_EE> & _Context_EE;
export default class _Context extends Functional<I, J, _ContextEvents> implements J {
    private _context;
    private _context_waiter;
    private _unlisten;
    private _unlisten_context;
    constructor(system: System);
    subscribe(path: string[], key: string, listener: (type: ObjectUpdateType, path: string[], key: string, data: any) => void): Unlisten;
    f({ element }: I): void;
    d(): void;
    get(name: string): Promise<any>;
    set(name: string, data: any): Promise<void>;
    delete(name: string): Promise<any>;
    pathSet(path: string[], name: string, data: any): Promise<void>;
    pathGet(path: string[], name: string): Promise<any>;
    pathDelete(path: string[], name: string): Promise<void>;
    keys(): Promise<string[]>;
    hasKey(name: string): Promise<boolean>;
}
