import { ArgumentType, UtamBasicElementTypeLiteral, UtamElementActionType } from '@utam/types'; export declare const BASIC_ELEMENT_TYPES: UtamBasicElementTypeLiteral[]; type ActionCardinality = 'singular' | 'needs list'; export interface ElementActionType { external?: false; applyFunction: UtamElementActionType; howToApply?: ActionCardinality; applicableTo: Array; args?: ActionArgument[]; return?: ArgumentType; } export interface ActionArgument { required: boolean; type: ArgumentType; } export interface ExternalActionType { external?: true; applyFunction: string; howToApply?: ActionCardinality; args?: ActionArgument[]; return: 'unknown'; } /** * check if string matches one of the supported actions from grammar spec * return supported action metadata object if it does or undefined otherwise * undefined value if further processed by validator * @param applyString string with action type */ export declare function buildActionByName(applyFunction: string, elementType?: string | string[]): ElementActionType | ExternalActionType | undefined; /** * Verify that an action is applicable to at least one element types from the set of declared types * @param actionType type of the action being applied * @param elementTypes * @returns false if the action can't be applied to the element, true otherwise */ export declare function isActionApplicableForTypes(actionType: ElementActionType, elementTypes: string[] | string): boolean; /** * check if action requires operand to be a list/array of elements * @param methodName name of the compose method being validated * @param actionType type of the action being applied * @param isElementList boolean indicator if element is a list * @return false if action requires list and element is not */ export declare function isCorrectElementCardinality(actionType: ElementActionType | ExternalActionType, isElementList: boolean): boolean; export declare function getActionExpectedArgs(actionType: ElementActionType | ExternalActionType): ActionArgument[]; export {}; //# sourceMappingURL=element-actions.d.ts.map