import { ComponentOptionsMixin, DefineComponent } from 'vue';
import {
  SpacingEnum,
  VerticalAlignEnum,
  TextAlignEnum,
  FlexDirectionEnum,
  JustifyContentEnum,
  AlignItemsEnum,
  AlignContentEnum,
} from '../../common/components-enum-props';

declare const Box: DefineComponent<
  {
    noSpace?: boolean;
    inline?: boolean;
    m?: keyof typeof SpacingEnum;
    p?: keyof typeof SpacingEnum;
    mt?: keyof typeof SpacingEnum;
    ml?: keyof typeof SpacingEnum;
    mb?: keyof typeof SpacingEnum;
    mr?: keyof typeof SpacingEnum;
    pt?: keyof typeof SpacingEnum;
    pl?: keyof typeof SpacingEnum;
    pb?: keyof typeof SpacingEnum;
    pr?: keyof typeof SpacingEnum;
    mx?: keyof typeof SpacingEnum;
    my?: keyof typeof SpacingEnum;
    px?: keyof typeof SpacingEnum;
    py?: keyof typeof SpacingEnum;
    width?: number;
    height?: number;
    verticalAlign?: keyof typeof VerticalAlignEnum;
    textAlign?: keyof typeof TextAlignEnum;
    flex?: boolean;
    flexDirection?: keyof typeof FlexDirectionEnum;
    flexWrap?: boolean;
    justifyContent?: keyof typeof JustifyContentEnum;
    alignItems?: keyof typeof AlignItemsEnum;
    alignContent?: keyof typeof AlignContentEnum;
  },
  () => JSX.Element,
  unknown,
  {},
  {},
  ComponentOptionsMixin,
  ComponentOptionsMixin
>;

export default Box;
