export interface DocsFigmaSource {
  figmaFileKey: string
  figmaNodeId: string
  figmaPage: string
  figmaPageId?: string
  sourceFile: string
}

export interface DocsFigmaAxis {
  figmaAxis: string
  codeProp: string
  values: readonly string[]
  valueCase: 'figma-original'
}

export interface DocsFigmaVariant<TProps extends Record<string, string> = Record<string, string>> {
  variantId: string
  figmaName: string
  props: TProps
  theme?: 'dark' | 'light'
}

export type BooleanProperty = {
  /** Figma BOOLEAN component property name, e.g. "showTotal" or "showCloseIcon". */
  figmaName: string
  /** Canonical prop name from prop-aliases.json, or null when no alias is registered. */
  codeName: string | null
  /** Translation decision status from prop-aliases.json, or null when no alias is registered. */
  status: string | null
}

export interface DocsFigmaMembers<TProps extends Record<string, string> = Record<string, string>> {
  schemaVersion: 't2-sample-v0.1'
  component: string
  source: DocsFigmaSource
  axes: readonly DocsFigmaAxis[]
  /** BRIDGE-005 (2026-05-14): Figma BOOLEAN properties from figma-mcp-cache TSX props. */
  booleanProperties?: readonly BooleanProperty[]
  variants: readonly DocsFigmaVariant<TProps>[]
  meta: {
    generatedAt: string
    sourceFile: string
    variantCount: number
  }
}
