declare namespace DataMeter {
  interface ILayout {
    i: string;
    key: string;
    w: number;
    h: number;
    x: number;
    y: number;
    child?: ILayoutChild[];
    moved: boolean;
    static: boolean;
    active?: number | string;
  }

  interface ILayoutChild {
    title: string;
    key: number | string;
    show: boolean;
    children?: ILayoutChild[];
  }
  interface IProps {
    subModule: number;
    onClickProject: number;
    switchModule: number;
    isNew: boolean;
    hasModel: boolean;
  }
  interface IModelsProps {
    key: number | string;
    edit: boolean;
    hasModel: boolean;
    child: ILayoutChild[];
    layout: ILayout;
    projectId: number;
    setActive: Function;
    subModule: number;
    isNew: boolean;
    showEditModel: Function;
    removeModel: Function;
    children?: React.ReactElement;
  }
  interface ITitleProps {
    title: string;
    showTabs?: boolean;
    setShowTabs?: Function;
    width?: number;
  }
  interface IProjectListProps {
    edit:boolean,
    subModule: number,
    layout: ILayout,
  }
}
