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