import type { GetFileResponse, Node } from "../types/figma.js"; import type { ResolvedSourceConfig } from "../types/config.js"; import { type SvgExportRisk } from "../svg/safety.js"; import { type SvgImageFillRepairPlan } from "../svg/rest-image-fill-repair.js"; export type IndexedItem = { sourceId: string; fileKey: string; nodeId: string; nodeType: "COMPONENT" | "COMPONENT_SET_VARIANT"; nodeName: string; componentName: string; componentSetName?: string; variantName?: string; variantProperties: Record; pageId: string; pageName: string; sectionId?: string; sectionName?: string; componentDescription?: string; componentSetDescription?: string; fingerprint: string; svgExportRisks: SvgExportRisk[]; svgImageFillRepairPlan?: SvgImageFillRepairPlan; logicalDimensions?: LogicalDimensions; }; export type LogicalDimensions = { width: number; height: number; }; /** * The node's logical size in Figma units: render bounds first (what the export draws), then the * bounding box. Undefined when neither is present and finite. */ export declare function getLogicalDimensions(node: Node): LogicalDimensions | undefined; export declare class FigmaIndexer { indexFile(fileData: GetFileResponse, source: ResolvedSourceConfig): IndexedItem[]; private walkPage; private walkNode; private extractVariantProperties; private passesDescriptionExportMarker; private readDescriptionFlag; private computeFingerprint; private normalizeForFingerprint; }