import { AreStoreWatchingEntity, AreNode, AreAttribute, AreStore, AreScene, AreSyntax, AreMutation, AreDeclaration, AreInstructionSerialized, AreNodeNewProps, Are, AreSignal, AreContext, AreInstruction, AreCompiler, AreEngine, AreSignalsContext, AreSyntaxTokenMatch, AreInterpreter, AreLifecycle, AreTokenizer, AreTransformer, ArePropDefinition } from '@adaas/are'; import { A_Component, A_TYPES__Ctor, A_Fragment, ASEID, A_Scope, A_Feature, A_ComponentMeta } from '@adaas/a-concept'; import { A_Logger } from '@adaas/a-utils/a-logger'; import { A_ExecutionContext } from '@adaas/a-utils/a-execution'; import { A_Route } from '@adaas/a-utils/a-route'; import { A_Signal, A_SignalState, A_SignalVector } from '@adaas/a-utils/a-signal'; declare class AreDirective extends A_Component { /** * Allows to define a compilation order for directives, which is necessary when we have multiple directives on the same node and we want to control the order of their compilation and application. The directive with the highest priority will be compiled and applied first, and the directive with the lowest priority will be compiled and applied last. This is important because some directives may depend on the output of other directives, so we need to ensure that they are compiled and applied in the correct order to avoid errors and ensure the expected behavior. * * @param priority * @returns */ static Priority(priority: number): >(target: TTarget) => TTarget; /** * Allows to define a custom method for transforming the AreNode tree based on the directive attribute. This method is called during the transformation phase of the ARE component and should perform any necessary transformations on the AreNode tree based on the directive's content and context. This can include tasks such as adding or removing nodes, modifying node properties, or restructuring the tree to ensure that the directive is applied correctly during rendering. */ static get Transform(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any; /** * Allows to define a custom method for compiling a directive attribute into a set of SceneInstructions. * Can be used at any component to extend this logic not only for a AreDirective inherited. */ static get Compile(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any; /** * Allows to define a custom method for updating a directive attribute based on changes in the store or other dependencies. * Can be used at any component to extend this logic not only for a AreDirective inherited. */ static get Update(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => any; /** * Default transform method for directives, which can be overridden by specific directive implementations. This method is called during the transformation phase of the ARE component and should perform any necessary transformations on the AreNode tree based on the directive's content and context. This can include tasks such as adding or removing nodes, modifying node properties, or restructuring the tree to ensure that the directive is applied correctly during rendering. * * @param attribute - The directive attribute to transform, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.) * @param args - Additional arguments that may be required for the transformation process. */ transform(attribute: AreDirectiveAttribute, ...args: any[]): void; /** * Default compile method for directives, which can be overridden by specific directive implementations. * * @param attribute - The directive attribute to compile, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.) * @param args - Additional arguments that may be required for the compilation process. */ compile(attribute: AreDirectiveAttribute, ...args: any[]): void; /** * Default update method for directives, which can be overridden by specific directive implementations. This method is called when there are changes in the store or other dependencies that may affect the directive's behavior or appearance. The method should contain logic to update the directive accordingly, such as re-evaluating its value, modifying the DOM, or triggering re-rendering of the affected nodes. * * @param attribute - The directive attribute to update, which contains all the information about the directive as defined in the template (e.g. name, raw content, evaluated value, etc.) * @param args - Additional arguments that may be required for the update process. */ update(attribute: AreDirectiveAttribute, ...args: any[]): void; } declare class AreDirectiveAttribute extends AreHTMLAttribute implements AreStoreWatchingEntity { cache?: any; template?: AreHTMLNode; /** * Returns a custom directive component associated with this attribute, if available. * * The method uses the attribute's name to resolve the corresponding directive component from the scope. It constructs the expected directive name by converting the attribute name to PascalCase and prefixing it with "AreDirective". If a matching directive component is found in the scope, it is returned; otherwise, the method returns undefined. */ get component(): AreDirective | undefined; } declare class AreEventAttribute extends AreHTMLAttribute { } declare class AreStaticAttribute extends AreHTMLAttribute { } declare class AreStyle extends A_Fragment { styles: string; constructor(styles: string, aseid?: ASEID | string); } declare class AreHTMLNode extends AreNode { /** * When set, this node is a *static island* root: its entire inner subtree * was detected (at tokenize time) to contain no ARE-reactive constructs — * no interpolations, no dynamic attributes and only standard HTML tags. * * Instead of being exploded into one child AreNode per element/text node, * the inner markup is preserved verbatim here and materialised in a single * pass by the interpreter (browser-parsed `innerHTML` / cached `