/** * AMPscript variable type tracker. * * Performs a single-pass scan of AMPscript source text to build a map of * variable names → inferred types. The scan covers: * * 1. `SET \@var = FunctionName(...)` — type derived from the function's * `returnType` field in the ampscript-data catalog. * 2. `SET \@var = "string literal"` / `'string'` → `'string'` * 3. `SET \@var = 42` / `-3.14` → `'number'` * 4. `SET \@var = true` / `false` → `'boolean'` * 5. `FOR \@i = TO ` / `FOR \@i = DOWNTO ` — index * variable is always `'number'`. * * Only the **first** assignment to each variable is recorded; later * reassignments are ignored (conservative single-type inference). * * All matching is case-insensitive for keywords (`SET`, `FOR`, `TO`, `DOWNTO`) * and function names, matching AMPscript's own case-insensitivity rules. */ /** The resolved AMPscript type of a variable. */ export type AmpscriptVarType = 'string' | 'number' | 'boolean' | 'rowset' | 'row' | 'object' | 'string|number'; /** * Returns a map from lowercase variable name (without the `@`) to its * inferred type, derived from the first assignment found in `text`. * @param text - Full AMPscript document text. * @returns Map of `varname` → `AmpscriptVarType`. */ export declare function buildVariableTypeMap(text: string): Map; //# sourceMappingURL=ampscriptVariableTracker.d.ts.map