import type { Delegate } from "@surface/core"; import type { ObservablePath } from "@surface/htmlx-parser"; import type { Evaluator } from "../index.js"; import ReactiveMap from "./reactive-map.js"; import type InjectionContext from "./types/injection-context.js"; type OnewayContext = { key: string; evaluator: Evaluator; scope: object; observables: ObservablePath[]; }; type TwoWayContext = { left: string; right: ObservablePath; scope: object; }; type BindContexts = { oneway: Map; twoWay: Map; }; type ListenerContext = { scope: object; type: string; listenerEvaluator: Evaluator; contextEvaluator: Evaluator; }; type FactoryContext = { binds: BindContexts; listeners: Map; }; export default class Metadata { readonly defaults: Map; readonly injections: ReactiveMap; readonly placeholders: ReactiveMap>; readonly listeners: ReactiveMap; readonly context: FactoryContext; static from(target: Node): Metadata; } export {};