/**
 * LINE Messaging API
 * This document describes LINE Messaging API.
 *
 * The version of the OpenAPI document: 0.0.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { Action } from "./action.js";
import { FlexBoxBackground } from "./flexBoxBackground.js";
import { FlexComponent } from "./flexComponent.js";

import { FlexComponentBase } from "./models.js";

export type FlexBox = FlexComponentBase & {
  type: "box";

  layout: FlexBox.LayoutEnum;
  flex?: number;
  contents: Array<FlexComponent>;
  spacing?: string;
  margin?: string;
  position?: FlexBox.PositionEnum;
  offsetTop?: string;
  offsetBottom?: string;
  offsetStart?: string;
  offsetEnd?: string;
  backgroundColor?: string;
  borderColor?: string;
  borderWidth?: string;
  cornerRadius?: string;
  width?: string;
  maxWidth?: string;
  height?: string;
  maxHeight?: string;
  paddingAll?: string;
  paddingTop?: string;
  paddingBottom?: string;
  paddingStart?: string;
  paddingEnd?: string;
  action?: Action;
  justifyContent?: FlexBox.JustifyContentEnum;
  alignItems?: FlexBox.AlignItemsEnum;
  background?: FlexBoxBackground;
};

export namespace FlexBox {
  export type LayoutEnum = "horizontal" | "vertical" | "baseline";

  export type PositionEnum = "relative" | "absolute";

  export type JustifyContentEnum =
    | "center"
    | "flex-start"
    | "flex-end"
    | "space-between"
    | "space-around"
    | "space-evenly";

  export type AlignItemsEnum = "center" | "flex-start" | "flex-end";
}
