import { Compiler } from '../index.js'; import { CompilerBuffer } from '../buffer/index.js'; import type { SchemaArray, ValidationField } from '../../types.js'; /** * Exposes the API to compile the array node to a set of inline * Javascript instructions. */ export declare class ArrayCompiler { private field; private node; private compiler; private references; constructor(field: ValidationField, node: SchemaArray, compiler: Compiler, references: { outVariable: string; referenceVariable: string; parentPointer: ValidationField[]; }); /** * Declaring the out variable as an empty array. As the validations * will progress, this object will receive new properties */ private declareOutVariable; /** * Add the if statement to ensure that the runtime value is an * array, before we attempt to validate it's members */ private startIfGuard; /** * Ends the previously started if guard */ private endIfGuard; /** * Start the for loop to loop over the array entries. We use a `for of` * loop, since their are one or more children async rules */ private startAsyncForLoop; /** * Start the for loop to loop over the array entries. */ private startForLoop; /** * Ends the previously started for loop */ private endForLoop; /** * Returns a boolean telling if any of the children of a given node * has async rules. This helps in optimizing the for loop for * the array. */ private hasAsyncChildren; /** * Converts the array node to compiled Javascript statement. */ compile(buffer: CompilerBuffer): void; }