import { VNode } from "../../../../core/adapters/type.v-node"; export interface Instruction { URL: string; Path: number[]; } export interface TextInstruction extends Instruction { Getter: () => string; } export interface SlotInstruction extends Instruction { Getter: () => any; Name: string; } export interface EventInstruction extends Instruction { Callback: (event: Event) => void; Name: string; } export type KindToInstructionMap = { Text: TextInstruction[]; Slot: SlotInstruction[]; Events: EventInstruction[]; FixedSlot: SlotInstruction[]; }; export type InstructionGroup = { Group: Map; Paths: Map; Targets: HTMLElement[]; }; export declare function Analyze(node: VNode, path?: number[]): KindToInstructionMap; export declare function GroupByPath(instructions: KindToInstructionMap): InstructionGroup; export declare function GetChildByPath(element: HTMLElement, path: number[]): HTMLElement | null; export declare const EVENT_INSTRUCTION: (target: HTMLElement, instruction: EventInstruction) => void; export declare const FIXED_SLOT_INSTRUCTION: (target: HTMLElement, instruction: SlotInstruction) => void; export declare const SLOT_INSTRUCTION: (target: HTMLElement, instruction: SlotInstruction) => void; export declare const TEXT_INSTRUCTION: (target: HTMLElement, instruction: TextInstruction) => void; export declare function ApplyInstructions(element: HTMLElement, instructions: KindToInstructionMap): void; export declare function ApplyGroup(element: HTMLElement, group: InstructionGroup): void;