import { VuiTheme } from "../theme/types.js";
import { SystemProp, VariantsType } from "@xstyled/system";
import * as CSS from "csstype";

//#region src/system/transforms.d.ts
type TransformGetter = VariantsType<VuiTheme['transforms']>;
type TransformProp = SystemProp<boolean | string, VuiTheme>;
type TransformProps = {
  transform?: TransformProp;
  hoverTransform?: TransformProp;
};
type TransformOriginProp = SystemProp<CSS.Property.TransformOrigin, VuiTheme>;
type TransformOriginProps = {
  transformOrigin?: TransformOriginProp;
  hoverTransformOrigin?: TransformOriginProp;
};
type TranslateXProp = SystemProp<number | string, VuiTheme>;
type TranslateXProps = {
  translateX?: TranslateXProp;
  hoverTranslateX?: TranslateXProp;
};
type TranslateYProp = SystemProp<number | string, VuiTheme>;
type TranslateYProps = {
  translateY?: TranslateYProp;
  hoverTranslateY?: TranslateYProp;
};
type RotateProp = SystemProp<number | string, VuiTheme>;
type RotateProps = {
  rotate?: RotateProp;
  hoverRotate?: RotateProp;
};
type SkewXProp = SystemProp<number | string, VuiTheme>;
type SkewXProps = {
  skewX?: SkewXProp;
  hoverSkewX?: SkewXProp;
};
type SkewYProp = SystemProp<number | string, VuiTheme>;
type SkewYProps = {
  skewY?: SkewYProp;
  hoverSkewY?: SkewYProp;
};
type ScaleProp = SystemProp<number | string, VuiTheme>;
type ScaleProps = {
  scale?: ScaleProp;
  hoverScale?: ScaleProp;
};
type ScaleXProp = SystemProp<number | string, VuiTheme>;
type ScaleXProps = {
  scaleX?: ScaleXProp;
  hoverScaleX?: ScaleXProp;
};
type ScaleYProp = SystemProp<number | string, VuiTheme>;
type ScaleYProps = {
  scaleY?: ScaleYProp;
  hoverScaleY?: ScaleYProp;
};
type TransformsProps = TransformProps & TransformOriginProps & TranslateXProps & TranslateYProps & RotateProps & SkewXProps & SkewYProps & ScaleProps & ScaleXProps & ScaleYProps;
//#endregion
export { RotateProps, ScaleProps, ScaleXProps, ScaleYProps, SkewXProps, SkewYProps, TransformGetter, TransformOriginProps, TransformProps, TransformsProps, TranslateXProps, TranslateYProps };

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