import RGL from 'react-grid-layout';
import { ApiService } from '../services/apiService';
import { GlobalHandlerMap } from '../services/handler';
import { RegistryInterface } from '../services/Registry';
import { StateManagerInterface } from '../services/StateManager';
import { Application } from '@sunmao-ui/core';
export declare type UIServices = {
    registry: RegistryInterface;
    stateManager: StateManagerInterface;
    globalHandlerMap: GlobalHandlerMap;
    apiService: ApiService;
    eleMap: Map<string, HTMLElement>;
};
export declare type GridCallbacks = {
    onDragStop?: (id: string, layout: RGL.Layout[]) => void;
    onDrop?: (id: string, layout: RGL.Layout[], item: RGL.Layout, event: DragEvent) => void;
};
export declare type ComponentParamsFromApp = {
    gridCallbacks?: GridCallbacks;
    hooks?: AppHooks;
};
export declare type AppProps = {
    options: Application;
    services: UIServices;
    debugStore?: boolean;
    debugEvent?: boolean;
} & ComponentParamsFromApp;
export declare type AppHooks = {
    didMount?: () => void;
    didUpdate?: () => void;
    didDomUpdate?: () => void;
};
