import { UtamBasicElementTypeLiteral, UtamElementType } from '@utam/types'; /** * Generates a Class name from the element type (for basic element). * * For instance, if an element is declared as ["editable", "clickable"], this function generates the string * ClickableEditableUtamElement. If no type is specified, it default to BasicUtamElement. This function is used * when we generate the statements for the basic elements getters. * * For basic elements, we generate an extra statement that will assign the mixed class returned by _createUtamElement * to a variable named after the value returned by this function. For example: * * const ActivableClickableUtamElement = createUtamMixinCtor(ActivableUtamElement, EditableUtamElement) * * @param type type of the element for which statements are being generated (parsed from JSON declaration) * @returns the class name for basic elements, an empty string for custom and container elements */ export declare function createCtorNameFromTypes(type: UtamElementType): string; /** * Generates the list of mixins that the function _createUtamElement must take to extend the base class. * * @param type type of the element for which statements are being generated (parsed from JSON declaration) * @returns the name of the mixins from which we want to extend the base class (BaseUtamElement) */ export declare function mapBasicTypesToCtors(type: UtamElementType): string; /** * Generates the type returned by an element getter used for it's type definition. * * For instance, if an element is declared as ["editable", "clickable"], this function generates the string * BasicUtamElement & ClickableUtamElement & EditableUtamElement. * * @param type type of the element for which statements are being generated (parsed from JSON declaration) * @returns the type of the value returned by the element getter method used for it's type definition */ export declare function createBasicElementCtorType(type: UtamBasicElementTypeLiteral[]): string; //# sourceMappingURL=element-constructors.d.ts.map