import { LazyActive } from '@easy-coder/sdk/helper';
import { VariableDefine } from '@easy-coder/sdk/variable';
import { EasyCoderEvent } from '@easy-coder/sdk/event';
import { EasyCoderState, EasyCoderElement, FetchElementByType, EasyCoderEnv, GlobalVariable, GlobalClassName, GlobalStyleVarGroup } from '../type';

export interface StoreContext {
    state: LazyActive<EasyCoderState.Desc>;
    elements: LazyActive<Record<string, EasyCoderElement.Desc<any>>>;
    env: EasyCoderEnv;
    globalVariable: LazyActive<Record<string, GlobalVariable>>;
    globalClassName: LazyActive<Record<string, GlobalClassName>>;
    globalStyleVarGroups: LazyActive<GlobalStyleVarGroup[]>;
    variableStore: LazyActive<Record<string, any>>;
    variableDefine: LazyActive<Record<string, VariableDefine.Desc>>;
    eventFlow: LazyActive<Record<string, EasyCoderEvent.EventFlow<any>>>;
    eventDefine: LazyActive<Record<string, EasyCoderEvent.PathOrMethod>>;
    fetchElementByType?: FetchElementByType;
    getModalContainer?: () => HTMLElement;
}
export declare const storeContext: import('react').Context<StoreContext>;
