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

//#region src/system/borders.d.ts
type BorderGetter = VariantsType<VuiTheme['borders']>;
type BorderStyleGetter = VariantsType<unknown>;
type BorderWidthGetter = VariantsType<unknown>;
type RadiusGetter = VariantsType<VuiTheme['radii']>;
type RingWidthGetter = VariantsType<VuiTheme['ringWidths']>;
type BorderProp = SystemProp<BorderGetter, VuiTheme>;
type BorderProps = {
  border?: BorderProp;
  hoverBorder?: BorderProp;
};
type BorderTopProp = SystemProp<BorderGetter, VuiTheme>;
type BorderTopProps = {
  borderTop?: BorderTopProp;
};
type BorderRightProp = SystemProp<BorderGetter, VuiTheme>;
type BorderRightProps = {
  borderRight?: BorderRightProp;
};
type BorderBottomProp = SystemProp<BorderGetter, VuiTheme>;
type BorderBottomProps = {
  borderBottom?: BorderBottomProp;
};
type BorderLeftProp = SystemProp<BorderGetter, VuiTheme>;
type BorderLeftProps = {
  borderLeft?: BorderLeftProp;
};
type BorderColorProp = SystemProp<ColorGetter, VuiTheme>;
type BorderColorProps = {
  borderColor?: BorderColorProp;
  disabledBorderColor?: BorderColorProp;
  focusBorderColor?: BorderColorProp;
  hoverBorderColor?: BorderColorProp;
  focusWithinBorderColor?: BorderColorProp;
};
type BorderTopColorProp = SystemProp<ColorGetter, VuiTheme>;
type BorderTopColorProps = {
  borderTopColor?: BorderTopColorProp;
};
type BorderRightColorProp = SystemProp<ColorGetter, VuiTheme>;
type BorderRightColorProps = {
  borderRightColor?: BorderRightColorProp;
};
type BorderBottomColorProp = SystemProp<ColorGetter, VuiTheme>;
type BorderBottomColorProps = {
  borderBottomColor?: BorderBottomColorProp;
};
type BorderLeftColorProp = SystemProp<ColorGetter, VuiTheme>;
type BorderLeftColorProps = {
  borderLeftColor?: BorderLeftColorProp;
};
type BorderWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type BorderWidthProps = {
  borderWidth?: BorderWidthProp;
  hoverBorderWidth?: BorderWidthProp;
};
type BorderTopWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type BorderTopWidthProps = {
  borderTopWidth?: BorderTopWidthProp;
};
type BorderRightWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type BorderRightWidthProps = {
  borderRightWidth?: BorderRightWidthProp;
};
type BorderBottomWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type BorderBottomWidthProps = {
  borderBottomWidth?: BorderBottomWidthProp;
};
type BorderLeftWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type BorderLeftWidthProps = {
  borderLeftWidth?: BorderLeftWidthProp;
};
type BorderStyleProp = SystemProp<BorderStyleGetter, VuiTheme>;
type BorderStyleProps = {
  borderStyle?: BorderStyleProp;
  hoverBorderStyle?: BorderStyleProp;
};
type BorderRadiusProp = SystemProp<RadiusGetter, VuiTheme>;
type BorderRadiusProps = {
  borderRadius?: BorderRadiusProp;
  hoverBorderRadius?: BorderRadiusProp;
};
type OutlineProp = SystemProp<BorderGetter, VuiTheme>;
type OutlineProps = {
  outline?: OutlineProp;
};
type OutlineColorProp = SystemProp<ColorGetter, VuiTheme>;
type OutlineColorProps = {
  outlineColor?: OutlineColorProp;
};
type OutlineWidthProp = SystemProp<BorderWidthGetter, VuiTheme>;
type OutlineWidthProps = {
  outlineWidth?: OutlineWidthProp;
};
type OutlineStyleProp = SystemProp<BorderStyleGetter, VuiTheme>;
type OutlineStyleProps = {
  outlineStyle?: OutlineStyleProp;
};
type DivideXProp = SystemProp<BorderWidthGetter, VuiTheme>;
type DivideXProps = {
  divideX?: DivideXProp;
};
type DivideYProp = SystemProp<BorderWidthGetter, VuiTheme>;
type DivideYProps = {
  divideY?: DivideYProp;
};
type DivideXReverseProp = SystemProp<BorderWidthGetter, VuiTheme>;
type DivideXReverseProps = {
  divideXReverse?: DivideXReverseProp;
};
type DivideYReverseProp = SystemProp<BorderWidthGetter, VuiTheme>;
type DivideYReverseProps = {
  divideYReverse?: DivideYReverseProp;
};
type DivideColorProp = SystemProp<ColorGetter, VuiTheme>;
type DivideColorProps = {
  divideColor?: DivideColorProp;
  hoverDivideColor?: DivideColorProp;
};
type DivideStyleProp = SystemProp<BorderStyleGetter, VuiTheme>;
type DivideStyleProps = {
  divideStyle?: DivideStyleProp;
};
type RingProp = SystemProp<RingWidthGetter, VuiTheme>;
type RingProps = {
  ring?: RingProp;
  focusRing?: RingProp;
  focusVisibleRing?: RingProp;
  focusWithinRing?: RingProp;
  hoverRing?: RingProp;
};
type RingColorProp = SystemProp<ColorGetter, VuiTheme>;
type RingColorProps = {
  ringColor?: RingColorProp;
  focusRingColor?: RingColorProp;
  focusVisibleRingColor?: RingColorProp;
  focusWithinRingColor?: RingColorProp;
  hoverRingColor?: RingColorProp;
};
type BordersProps = BorderProps & BorderTopProps & BorderRightProps & BorderBottomProps & BorderLeftProps & BorderColorProps & BorderTopColorProps & BorderRightColorProps & BorderBottomColorProps & BorderLeftColorProps & BorderWidthProps & BorderTopWidthProps & BorderRightWidthProps & BorderBottomWidthProps & BorderLeftWidthProps & BorderStyleProps & BorderRadiusProps & OutlineProps & OutlineColorProps & OutlineWidthProps & OutlineStyleProps & DivideXProps & DivideYProps & DivideXReverseProps & DivideYReverseProps & DivideColorProps & DivideStyleProps & RingProps & RingColorProps;
//#endregion
export { BorderBottomColorProps, BorderBottomProps, BorderBottomWidthProps, BorderColorProps, BorderGetter, BorderLeftColorProps, BorderLeftProps, BorderLeftWidthProps, BorderProps, BorderRadiusProp, BorderRadiusProps, BorderRightColorProps, BorderRightProps, BorderRightWidthProps, BorderStyleGetter, BorderStyleProps, BorderTopColorProps, BorderTopProps, BorderTopWidthProps, BorderWidthGetter, BorderWidthProps, BordersProps, DivideColorProps, DivideStyleProps, DivideXProps, DivideXReverseProps, DivideYProps, DivideYReverseProps, OutlineColorProps, OutlineProps, OutlineStyleProps, OutlineWidthProps, RadiusGetter, RingColorProps, RingProps, RingWidthGetter };

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