import { type ElementType, type JSXElementConstructor } from 'react'; import { type AlignmentXExtendedDictionaryType, type AlignmentYExtendedDictionaryType, type ChildrenProps, type DirectionExtendedDictionaryType, type SingleOrResponsive, type SpaceToken, type StyleProps, type TransferProps } from './shared'; export interface FlexElementTypeProps { elementType?: T | JSXElementConstructor; } export type FlexDirection = DirectionExtendedDictionaryType | 'row' | 'column'; export type FlexDirectionType = FlexDirection | { [key: string]: FlexDirection; }; export type FlexAlignmentXType = NonNullable | { [key: string]: NonNullable; }; export type FlexAlignmentYType = NonNullable | { [key: string]: NonNullable; }; export type FlexWrapType = boolean | { [key: string]: boolean; }; export interface FlexCustomLayoutProps { alignmentX?: FlexAlignmentXType; alignmentY?: FlexAlignmentYType; direction?: FlexDirectionType; isWrapping?: FlexWrapType; spacing?: SingleOrResponsive; spacingX?: SingleOrResponsive; spacingY?: SingleOrResponsive; } export interface FlexProps extends FlexElementTypeProps, FlexCustomLayoutProps { } export interface SpiritFlexProps extends FlexProps, ChildrenProps, StyleProps, TransferProps { }