/** * Functionality related to processing of arguments inside methods or elements * * @since 0.0.7-alpha7 */ import { ExplicitNonLiteralArg, ExplicitUtamArgument, NonLiteralArgumentInternal, UtamArgument } from '@utam/types'; import { AstConfig, ElementMethodAst } from './class-body-generator'; export interface ElementReferenceAst { elementRefAst?: ElementMethodAst; elementArgs: ExplicitNonLiteralArg[]; } /** * find and return element reference together with collected element args * if element was already "visited" (args already collected), return empty array of element args * @param elementName name of the element * @param argsTraversalContext args traversal, used to track visited elements * @param elementMethodsAst array of known element getters * @param args arguments associated with the element getters * @returns array of non literal args and reference to a getter method */ export declare function findElementRefWithCollectedArgs(elementName: string, argsTraversalContext?: ArgsTraversalContext, elementMethodsAst?: ElementMethodAst[], args?: UtamArgument[]): ElementReferenceAst; export interface ArgsTraversalContext { visitedElements: Set; visitedMethodArgsNames: Set; methodArgs: NonLiteralArgumentInternal[]; containersArgsCounter: number; } export declare function buildArgsTraversal(methodArgs?: NonLiteralArgumentInternal[]): ArgsTraversalContext; interface ArgsTraversalOptions { deep?: boolean; excludeLiterals?: boolean; } /** * traverse args deep into predicates to collect ALL method parameters * @param validationContext context of validation * @param args declared args * @param astConfig context of the processed page object * @param options context to processed args * @returns array of explicit args */ export declare function traverseArguments(validationContext: string, args: T[] | undefined, astConfig?: AstConfig, options?: ArgsTraversalOptions, context?: ArgsTraversalContext): Array>; export {}; //# sourceMappingURL=arguments-processor.d.ts.map