import { BlurType } from "../../enums/SDKBlurType";
import { BorderPosition } from "../../enums/SDKBorderPosition";
import { BorderStyle } from "../../enums/SDKBorderStyle";
import { GradientType } from "../../enums/SDKGradientType";
import { ShadowType } from "../../enums/SDKShadowType";
import { LineHeightUnit, MsUnit, PxUnit, RawUnit, SizeUnit, Unit } from "../../enums/SDKUnit";
import { BorderWidthTokenRemoteData, ColorTokenRemoteData, DimensionTokenRemoteData, FontFamilyTokenRemoteData, FontSizeTokenRemoteData, FontWeightTokenRemoteData, LetterSpacingTokenRemoteData, LineHeightTokenRemoteData, OpacityTokenRemoteData, ParagraphSpacingTokenRemoteData, TextCaseTokenRemoteData, TextDecorationTokenRemoteData } from "./SDKRemoteTokenData";
export type ColorTokenRemoteValue = {
    color: string | ColorTokenRemoteData;
    opacity: OpacityTokenRemoteData;
};
export type StringTokenRemoteValue = string;
export type TextCaseTokenRemoteValue = string;
export type TextDecorationTokenRemoteValue = string;
export type VisibilityTokenRemoteValue = string;
export type TypographyTokenRemoteValue = {
    fontFamily: FontFamilyTokenRemoteData;
    fontWeight: FontWeightTokenRemoteData;
    fontSize: FontSizeTokenRemoteData;
    textDecoration: TextDecorationTokenRemoteData;
    textCase: TextCaseTokenRemoteData;
    letterSpacing: LetterSpacingTokenRemoteData;
    lineHeight: LineHeightTokenRemoteData | null;
    paragraphSpacing: ParagraphSpacingTokenRemoteData;
    paragraphIndent: ParagraphSpacingTokenRemoteData;
};
export type ShadowTokenRemoteValue = {
    color: ColorTokenRemoteData;
    x: number;
    y: number;
    radius: number;
    spread: number;
    opacity?: OpacityTokenRemoteData;
    type: ShadowType;
};
export type DimensionTokenRemoteValue = {
    unit: Unit;
    measure: number;
};
export type SizeTokenRemoteValue = {
    unit: SizeUnit;
    measure: number;
};
export type SpaceTokenRemoteValue = {
    unit: SizeUnit;
    measure: number;
};
export type OpacityTokenRemoteValue = {
    unit: RawUnit;
    measure: number;
};
export type FontSizeTokenRemoteValue = {
    unit: SizeUnit;
    measure: number;
};
export type LineHeightTokenRemoteValue = {
    unit: LineHeightUnit;
    measure: number;
};
export type LetterSpacingTokenRemoteValue = {
    unit: SizeUnit;
    measure: number;
};
export type ParagraphSpacingTokenRemoteValue = {
    unit: SizeUnit;
    measure: number;
};
export type BorderWidthTokenRemoteValue = {
    unit: PxUnit;
    measure: number;
};
export type RadiusTokenRemoteValue = {
    unit: PxUnit;
    measure: number;
};
export type DurationTokenRemoteValue = {
    unit: MsUnit;
    measure: number;
};
export type ZIndexTokenRemoteValue = {
    unit: RawUnit;
    measure: number;
};
export type AnyDimensionTokenRemoteValue = DimensionTokenRemoteValue | SizeTokenRemoteValue | SpaceTokenRemoteValue | OpacityTokenRemoteValue | FontSizeTokenRemoteValue | LineHeightTokenRemoteValue | LetterSpacingTokenRemoteValue | ParagraphSpacingTokenRemoteValue | BorderWidthTokenRemoteValue | RadiusTokenRemoteValue | DurationTokenRemoteValue | ZIndexTokenRemoteValue;
export type BorderTokenRemoteValue = {
    color: ColorTokenRemoteData;
    width: BorderWidthTokenRemoteData;
    position: BorderPosition;
    style: BorderStyle;
};
export type GradientTokenRemoteValue = {
    to: {
        x: number;
        y: number;
    };
    from: {
        x: number;
        y: number;
    };
    type: GradientType;
    aspectRatio: number;
    stops: Array<GradientStopRemoteValue>;
};
export type GradientStopRemoteValue = {
    position: number;
    color: ColorTokenRemoteData;
};
export type BlurTokenRemoteValue = {
    type: BlurType;
    radius: DimensionTokenRemoteData;
};
