import { FigmaFile, FigmaLocalVariable, FigmaLocalVariableCollection, FigmaLocalVariableCollections, FigmaLocalVariables, FigmaPublishedVariable, FigmaPublishedVariableCollection, FigmaTeamComponent, FigmaTeamStyle, StyleBucket } from "./models/figma"; import { AdoptionCalculationOptions, AggregateCounts, LintCheck, LintCheckPercent, ProcessedNode, ProcessedNodeTree, ProcessedPage, ProcessedPageBreakdown, ProcessedPercents, ProcessedProjectBreakdown, ProcessedTeamBreakdown } from "./models/stats"; import FigmaDocumentParser from "./parser"; import { generateComponentMap, generateStyleBucket, generateStyleLookup, LintCheckOptions } from "./rules"; import LintCleaner from "./rules/cleaners"; import { ProcessedNodeOptions } from "./utils/process"; import { getFigmaPagesForTeam } from "./utils/teams"; export * from "./models/stats"; export * from "./models/figma"; export * from "./rules/cleaners"; export * from "./utils/variables"; export declare class FigmaCalculator extends FigmaDocumentParser { components: FigmaTeamComponent[]; allStyles: FigmaTeamStyle[]; localVariables: FigmaLocalVariables; localVariableCollections: FigmaLocalVariableCollections; publishedVariables: FigmaLocalVariables; publishedVariableCollections: FigmaLocalVariableCollections; apiToken: string; constructor(); setAPIToken(apiToken: string): void; fetchCloudDocument(fileKey: string): Promise; getFilesForTeams: typeof getFigmaPagesForTeam; loadComponents(teamId: string, opts?: { filterPrefixes: string[]; }): Promise; loadComponentsFromFiles(fileKeys: string[]): Promise; loadStyles(teamId: string): Promise; loadStylesFromFiles(fileKeys: string[]): Promise; loadLocalVariables(fileKey: string): Promise<{ variables: Record; variableCollections: Record; }>; loadPublishedVariables(fileKey: string): Promise<{ variables: Record; variableCollections: Record; }>; static generateStyleBucket: typeof generateStyleBucket; static generateStyleLookup: typeof generateStyleLookup; static generateComponentMap: typeof generateComponentMap; getLintResults(node: BaseNode, opts?: { styles?: FigmaTeamStyle[]; styleBucket?: StyleBucket; colorVariableCollectionIds?: string[]; roundingVariableCollectionIds?: string[]; spacingVariableCollectionIds?: string[]; variables?: FigmaLocalVariables; variableCollections?: FigmaLocalVariableCollections; } & LintCheckOptions): LintCheck[]; static filterHiddenNodes(nodes: BaseNode[]): { hiddenParentNodes: string[]; nonHiddenNodes: BaseNode[]; numHiddenLayers: number; }; static filterIgnoredComponentNodes(nodes: BaseNode[], ignoredComponentKeys: string[]): Promise<{ ignoredParentInstanceIds: string[]; nonIgnoredNodes: BaseNode[]; numIgnoredLayers: number; }>; static filterLibraryNodes(nodes: BaseNode[], opts?: { components?: FigmaTeamComponent[]; }): Promise<{ libraryNodes: { [nodeId: string]: { layers: string[]; name: string; }; }; nonLibraryNodes: BaseNode[]; numLibraryNodes: number; }>; processTree(rootNode: BaseNode, opts?: { components?: FigmaTeamComponent[]; allStyles?: FigmaTeamStyle[]; colorVariableCollectionIds?: string[]; roundingVariableCollectionIds?: string[]; spacingVariableCollectionIds?: string[]; variables?: FigmaLocalVariables; variableCollections?: FigmaLocalVariableCollections; } & ProcessedNodeOptions): Promise; calculateAggregatesCompliance(allHiddenNodes: number, allIgnoredNodes: number, libraryNodes: number, totalNodes: number, processedNodes: ProcessedNode[]): AggregateCounts; getAdoptionPercent(aggregates: AggregateCounts[], opts?: AdoptionCalculationOptions): number; getTextStylePercentage(processedNodes: AggregateCounts[], opts?: AdoptionCalculationOptions): LintCheckPercent; getFillStylePercent(processedNodes: AggregateCounts[], opts?: AdoptionCalculationOptions): LintCheckPercent; getBreakDownByTeams(pages: ProcessedPage[], opts?: AdoptionCalculationOptions): { projects: ProcessedProjectBreakdown; teams: ProcessedTeamBreakdown; pages: ProcessedPageBreakdown; totals: ProcessedPercents; }; cleanupTree: typeof LintCleaner.run; }