/** * Defines the type of syntax constructs that we track (e.g., true, false, 0, 1, T, F, conditions...) */ import type { RNodeWithParent } from '@eagleoutice/flowr/r-bridge'; import { RFalse, RTrue } from '@eagleoutice/flowr/r-bridge'; import type { SummarizedMeasurement } from '@eagleoutice/flowr/util/summarizer'; export interface CommonSyntaxTypeCounts { total: Measurement; multiple: Measurement; empty: Measurement; withArgument: Measurement; noValue: Measurement; singleVar: Record; number: Record; integer: Record; complex: Record; string: Record; logical: Record; call: Record; unnamedCall: Measurement; binOp: Record; unaryOp: Record; other: Record; } export declare function emptyCommonSyntaxTypeCounts(init?: () => T): CommonSyntaxTypeCounts; /** * Updates the given counts based on the type of the given node. */ export declare function updateCommonSyntaxTypeCounts(current: CommonSyntaxTypeCounts, ...nodes: RNodeWithParent[]): CommonSyntaxTypeCounts; export declare function appendCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts, b: CommonSyntaxTypeCounts): void; export declare function summarizeCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts): CommonSyntaxTypeCounts;