export * from './classes'; export interface FigmaStyleProperties { layoutMode?: 'HORIZONTAL' | 'VERTICAL'; primaryAxisAlignItems?: 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN'; counterAxisAlignItems?: 'MIN' | 'CENTER' | 'MAX' | 'BASELINE'; layoutWrap?: 'NO_WRAP' | 'WRAP'; layoutSizingHorizontal?: 'FIXED' | 'HUG' | 'FILL'; layoutSizingVertical?: 'FIXED' | 'HUG' | 'FILL'; itemSpacing?: number; counterAxisSpacing?: number; paddingTop?: number; paddingRight?: number; paddingBottom?: number; paddingLeft?: number; width?: number; height?: number; minWidth?: number; maxWidth?: number; minHeight?: number; maxHeight?: number; cornerRadius?: number; topLeftRadius?: number; topRightRadius?: number; bottomLeftRadius?: number; bottomRightRadius?: number; strokeWeight?: number; strokeTopWeight?: number; strokeRightWeight?: number; strokeBottomWeight?: number; strokeLeftWeight?: number; strokeAlign?: 'INSIDE' | 'OUTSIDE' | 'CENTER'; dashPattern?: number[]; fills?: FigmaPaint[]; strokes?: FigmaPaint[]; effects?: Effect[]; opacity?: number; fontSize?: number; fontName?: FontName; textAlignHorizontal?: 'LEFT' | 'CENTER' | 'RIGHT' | 'JUSTIFIED'; textAlignVertical?: 'TOP' | 'CENTER' | 'BOTTOM'; lineHeight?: LineHeight; letterSpacing?: LetterSpacing; textDecoration?: 'NONE' | 'UNDERLINE' | 'STRIKETHROUGH'; textCase?: 'ORIGINAL' | 'UPPER' | 'LOWER' | 'TITLE'; paragraphSpacing?: number; paragraphIndent?: number; boundVariables?: { [key: string]: FigmaVariableBinding; }; } export interface FigmaVariableBinding { type: 'VARIABLE_ALIAS'; id: string; } export interface FigmaStyleObject extends FigmaStyleProperties { boundVariables?: { [K in keyof FigmaStyleProperties]?: FigmaVariableBinding; }; } export interface ParsedStyle { property: string; value: any; variant: 'preset' | 'arbitrary' | 'figma-variable'; variableId?: string; opacity?: number; } export interface FigmaVariablePaint extends GradientPaint { boundVariables?: { color?: FigmaVariableBinding; }; gradientStops: readonly FigmaVariableGradientStop[]; } export interface FigmaVariableGradientStop extends ColorStop { boundVariables?: { color?: FigmaVariableBinding; }; } export interface BasePaint { type: string; visible?: boolean; opacity?: number; blendMode?: string; } export interface FigmaSolidPaint extends BasePaint { type: 'SOLID'; color: { r: number; g: number; b: number; }; boundVariables?: { color?: FigmaVariableBinding; }; } export interface FigmaGradientStop { position: number; color: { r: number; g: number; b: number; }; boundVariables?: { color?: FigmaVariableBinding; }; } export interface FigmaGradientPaint extends BasePaint { type: 'GRADIENT_LINEAR' | 'GRADIENT_RADIAL' | 'GRADIENT_ANGULAR'; gradientStops: readonly FigmaGradientStop[]; boundVariables?: { color?: FigmaVariableBinding; }; } export interface FigmaImagePaint extends BasePaint { type: 'IMAGE'; imageUrl?: string; imageHash?: string; scaleMode?: 'FILL' | 'FIT' | 'CROP' | 'TILE'; imageTransform?: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; scalingFactor?: number; rotation?: number; } export type FigmaPaint = FigmaSolidPaint | FigmaGradientPaint | FigmaImagePaint;