///
import type { LayoutProps } from './layout';
export interface Sides {
top?: number;
right?: number;
bottom?: number;
left?: number;
}
export declare function sides(top: number | undefined, right: number | undefined, bottom: number | undefined, left: number | undefined): Sides;
export declare type FlexLength = number | string | undefined;
export interface FlexElementProps {
position?: FlexPosition;
left?: number | string;
top?: number | string;
right?: number | string;
bottom?: number | string;
minWidth?: number | string;
maxWidth?: number | string;
minHeight?: number | string;
maxHeight?: number | string;
marginLeft?: number | string;
marginTop?: number | string;
marginRight?: number | string;
marginBottom?: number | string;
alignSelf?: FlexAlignment;
flexGrow?: number;
flexShrink?: number;
flexBasis?: FlexLength;
crossBasis?: FlexLength;
}
export declare function flexElementPropsToStyle(props: FlexElementProps, parentProps: FlexParentProps, index: number, siblingsCount: number): Partial;
declare type Axis = 'horizontal' | 'vertical';
export declare function getMainAxis(props: FlexParentProps): Axis;
export declare function getCrossAxis(props: FlexParentProps): Axis;
export declare const flexWidthValueToUse: (crossBasis: FlexLength, stretches: boolean, crossAxis: Axis) => FlexLength;
export declare const flexHeightValueToUse: (crossBasis: FlexLength, stretches: boolean, crossAxis: Axis) => FlexLength;
export declare function getUnstretchedWidthHeight(props: LayoutProps, parentProps: FlexParentProps): {
width: FlexLength;
height: FlexLength;
};
export declare function getFlexSize(props: FlexElementProps, parentProps: FlexParentProps): Partial;
export declare function getTLBRProps(props: FlexElementProps): Partial;
export declare function getMarginProps(props: FlexElementProps, parentProps: FlexParentProps, index: number, siblingsCount: number): Partial;
export interface FlexParentProps {
flexDirection?: FlexDirection;
alignContent?: FlexAlignment;
alignItems?: FlexAlignment;
justifyContent?: FlexJustifyContent;
flexWrap?: FlexWrap;
gapMain?: number;
gapCross?: number;
paddingLeft?: string | number;
paddingTop?: string | number;
paddingRight?: string | number;
paddingBottom?: string | number;
}
export declare function flexParentPropsToStyle(props: FlexParentProps): Partial;
export declare enum FlexAlignment {
Auto = "auto",
FlexStart = "flex-start",
Center = "center",
FlexEnd = "flex-end",
Stretch = "stretch"
}
export declare const AllFlexAlignments: Array;
export declare enum FlexJustifyContent {
FlexStart = "flex-start",
Center = "center",
FlexEnd = "flex-end",
SpaceAround = "space-around",
SpaceBetween = "space-between",
SpaceEvenly = "space-evenly"
}
export declare const AllFlexJustifyContents: Array;
export declare enum FlexDirection {
Column = "column",
ColumnReverse = "column-reverse",
Row = "row",
RowReverse = "row-reverse"
}
export declare const AllFlexDirections: Array;
export declare enum FlexWrap {
NoWrap = "nowrap",
Wrap = "wrap",
WrapReverse = "wrap-reverse"
}
export declare const AllFlexWraps: Array;
export declare type FlexPosition = 'absolute' | 'relative';
export declare type FlexStretch = 'none' | 'horizontal' | 'vertical';
export declare function getFlexStretchForChild(parent: FlexParentProps, child: FlexElementProps): FlexStretch;
export {};