import { Modeling } from "./types";
declare enum ValueType {
    Undefined = 0,
    Point = 1,
    Percent = 2,
    Auto = 3
}
export declare class FlexTypedValue implements Modeling {
    type: ValueType;
    value: number;
    constructor(type: ValueType);
    static Auto: FlexTypedValue;
    static percent(v: number): FlexTypedValue;
    static point(v: number): FlexTypedValue;
    toModel(): {
        type: ValueType;
        value: number;
    };
}
export declare enum FlexDirection {
    COLUMN = 0,
    COLUMN_REVERSE = 1,
    ROW = 2,
    ROW_REVERSE = 3
}
export declare enum Align {
    AUTO = 0,
    FLEX_START = 1,
    CENTER = 2,
    FLEX_END = 3,
    STRETCH = 4,
    BASELINE = 5,
    SPACE_BETWEEN = 6,
    SPACE_AROUND = 7
}
export declare enum Justify {
    FLEX_START = 0,
    CENTER = 1,
    FLEX_END = 2,
    SPACE_BETWEEN = 3,
    SPACE_AROUND = 4,
    SPACE_EVENLY = 5
}
export declare enum Direction {
    INHERIT = 0,
    LTR = 1,
    RTL = 2
}
export declare enum PositionType {
    RELATIVE = 0,
    ABSOLUTE = 1
}
export declare enum Wrap {
    NO_WRAP = 0,
    WRAP = 1,
    WRAP_REVERSE = 2
}
export declare enum OverFlow {
    VISIBLE = 0,
    HIDDEN = 1,
    SCROLL = 2
}
export declare enum Display {
    FLEX = 0,
    NONE = 1
}
export declare type FlexValue = FlexTypedValue | number;
export interface FlexConfig {
    direction?: Direction;
    flexDirection?: FlexDirection;
    justifyContent?: Justify;
    alignContent?: Align;
    alignItems?: Align;
    alignSelf?: Align;
    positionType?: PositionType;
    flexWrap?: Wrap;
    overFlow?: OverFlow;
    display?: Display;
    flex?: number;
    flexGrow?: number;
    flexShrink?: number;
    flexBasis?: FlexValue;
    marginLeft?: FlexValue;
    marginRight?: FlexValue;
    marginTop?: FlexValue;
    marginBottom?: FlexValue;
    marginStart?: FlexValue;
    marginEnd?: FlexValue;
    marginHorizontal?: FlexValue;
    marginVertical?: FlexValue;
    margin?: FlexValue;
    paddingLeft?: FlexValue;
    paddingRight?: FlexValue;
    paddingTop?: FlexValue;
    paddingBottom?: FlexValue;
    paddingStart?: FlexValue;
    paddingEnd?: FlexValue;
    paddingHorizontal?: FlexValue;
    paddingVertical?: FlexValue;
    padding?: FlexValue;
    borderLeftWidth?: number;
    borderRightWidth?: number;
    borderTopWidth?: number;
    borderBottomWidth?: number;
    borderStartWidth?: number;
    borderEndWidth?: number;
    borderWidth?: number;
    left?: FlexValue;
    right?: FlexValue;
    top?: FlexValue;
    bottom?: FlexValue;
    start?: FlexValue;
    end?: FlexValue;
    width?: FlexValue;
    height?: FlexValue;
    minWidth?: FlexValue;
    minHeight?: FlexValue;
    maxWidth?: FlexValue;
    maxHeight?: FlexValue;
    aspectRatio?: number;
}
export {};
