import { VuiTheme } from "../theme/types.js";
import { ColorGetter } from "./colors.js";
import { SystemProp, VariantsType } from "@xstyled/system";
import { Globals, Property } from "csstype";

//#region src/system/typography.d.ts
type FontGetter = VariantsType<VuiTheme['fonts']>;
type FontSizeGetter = VariantsType<VuiTheme['fontSizes']>;
type FontWeightGetter = VariantsType<VuiTheme['fontWeights']>;
type LineHeightGetter = VariantsType<unknown>;
type FontFamilyProp = SystemProp<FontGetter, VuiTheme>;
type FontFamilyProps = {
  fontFamily?: FontFamilyProp;
};
type FontSizeProp = SystemProp<FontSizeGetter, VuiTheme>;
type FontSizeProps = {
  fontSize?: FontSizeProp;
};
type FontStyleProp = SystemProp<Property.FontStyle, VuiTheme>;
type FontStyleProps = {
  fontStyle?: FontStyleProp;
};
type FontWeightProp = SystemProp<FontWeightGetter, VuiTheme>;
type FontWeightProps = {
  fontWeight?: FontWeightProp;
};
type LineHeightProp = SystemProp<LineHeightGetter, VuiTheme>;
type LineHeightProps = {
  lineHeight?: LineHeightProp;
};
type ColorProp = ColorGetter;
type ColorProps = {
  color?: ColorProp;
  disabledColor?: ColorProp;
  hoverColor?: ColorProp;
  placeholderColor?: ColorProp;
};
type TextTransformProp = SystemProp<Property.TextTransform, VuiTheme>;
type TextTransformProps = {
  textTransform?: TextTransformProp;
};
type TextDecoration = Globals | 'overline' | 'underline' | 'line-through' | 'none';
type TextDecorationProp = SystemProp<TextDecoration, VuiTheme>;
type TextDecorationProps = {
  hoverTextDecoration?: TextDecorationProp;
  textDecoration?: TextDecorationProp;
};
type TextAlignProp = SystemProp<Property.TextAlign, VuiTheme>;
type TextAlignProps = {
  textAlign?: TextAlignProp;
};
type VerticalAlignProp = SystemProp<Property.VerticalAlign, VuiTheme>;
type VerticalAlignProps = {
  verticalAlign?: VerticalAlignProp;
};
type LetterSpacingProp = SystemProp<Property.LetterSpacing, VuiTheme>;
type LetterSpacingProps = {
  letterSpacing?: LetterSpacingProp;
};
type WhiteSpaceProp = SystemProp<Property.WhiteSpace, VuiTheme>;
type WhiteSpaceProps = {
  whiteSpace?: WhiteSpaceProp;
};
type TextOverflowProp = SystemProp<Property.TextOverflow, VuiTheme>;
type TextOverflowProps = {
  textOverflow?: TextOverflowProp;
};
type ListStyleTypeProp = SystemProp<Property.ListStyleType, VuiTheme>;
type ListStyleTypeProps = {
  listStyleType?: ListStyleTypeProp;
};
type ListStylePositionProp = SystemProp<Property.ListStylePosition, VuiTheme>;
type ListStylePositionProps = {
  listStylePosition?: ListStylePositionProp;
};
type TypographyProps = FontFamilyProps & FontSizeProps & FontStyleProps & FontWeightProps & LineHeightProps & ColorProps & TextTransformProps & TextDecorationProps & TextAlignProps & VerticalAlignProps & LetterSpacingProps & WhiteSpaceProps & TextOverflowProps & ListStyleTypeProps & ListStylePositionProps;
//#endregion
export { ColorProps, FontFamilyProps, FontGetter, FontSizeGetter, FontSizeProps, FontStyleProps, FontWeightGetter, FontWeightProps, LetterSpacingProps, LineHeightGetter, LineHeightProps, ListStylePositionProps, ListStyleTypeProps, TextAlignProps, TextDecorationProps, TextOverflowProps, TextTransformProps, TypographyProps, VerticalAlignProps, WhiteSpaceProps };

//# sourceMappingURL=typography.d.ts.map