/// <reference types="hoist-non-react-statics" />
/// <reference types="jspdf" />
import React from 'react';
import PropTypes from 'prop-types';
import BasicComponent from '../../components/Base/BasicComponent';
import { IThemeContext } from '../../context/theme';
import ThemeService from '../../services/theme/registerTheme';
import { EThemeTypes } from '../../constants';
import VariableWrapper, { TValue } from './VariableWrapper';
import Store from './store';
export * from './constants';
export * from './transform';
export * from './OperationBar';
export { calcVariableMap, replaceVariable } from './VariableWrapper';
export interface IBaseDashboardProps {
    className?: string;
    theme?: EThemeTypes;
    isEditing?: boolean;
    screenRatio?: number;
    loading?: boolean;
    backgroundColor?: string;
    fullscreen?: string;
    getPopupContainer?: () => HTMLElement;
    getModalContainer?: () => HTMLElement;
    onToggleFullscreen?: (isFullscreen: boolean) => void;
    variableMap?: IKeyValues<TValue>;
    replaceVariable?: (target: string, variables?: IKeyValues<TValue>) => void;
}
export default class BaseDashboard extends BasicComponent<IBaseDashboardProps, any> {
    static VariableWrapper: typeof VariableWrapper;
    static OperationBar: React.ComponentClass<import("./OperationBar").IOperationBarProps, any> & import("hoist-non-react-statics").NonReactStatics<(React.ComponentClass<import("./OperationBar").IOperationBarProps, any> & typeof import("./OperationBar").OperationBar) | (React.FunctionComponent<import("./OperationBar").IOperationBarProps> & typeof import("./OperationBar").OperationBar), {}>;
    static Panel: React.ComponentClass<import("./Panel").IPanelProps, any> & import("hoist-non-react-statics").NonReactStatics<(React.ComponentClass<import("./Panel").IPanelProps, any> & typeof import("./Panel").Panel) | (React.FunctionComponent<import("./Panel").IPanelProps> & typeof import("./Panel").Panel), {}>;
    uid: string;
    themeService: ThemeService;
    static childContextTypes: {
        baseDashboardStore: PropTypes.Requireable<object>;
        toggleFullscreen: PropTypes.Requireable<(...args: any[]) => any>;
        getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
        getModalContainer: PropTypes.Requireable<(...args: any[]) => any>;
        getDashboardCanvas: PropTypes.Requireable<(...args: any[]) => any>;
        getDashboardPDF: PropTypes.Requireable<(...args: any[]) => any>;
        themeService: PropTypes.Requireable<object>;
    };
    getChildContext(): {
        baseDashboardStore: Store;
        toggleFullscreen: () => void;
        getPopupContainer: () => any;
        getModalContainer: () => any;
        getDashboardCanvas: () => Promise<HTMLCanvasElement>;
        getDashboardPDF: () => Promise<import("jspdf").jsPDF>;
        themeService: ThemeService;
    };
    get themeContext(): IThemeContext;
    store: Store;
    updateIsFullscreen(): void;
    toggleFullscreen(): void;
    replaceVariable(target: string, variables?: IKeyValues<TValue>): string;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element;
}
