import type { IDisposable } from "@surface/core"; import type { ObservablePath, StackTrace } from "@surface/htmlx-parser"; import type DestructuredEvaluator from "../types/destructured-evaluator.js"; import type DirectiveEntry from "../types/directive-entry.js"; import type Evaluator from "../types/evaluator.js"; import type NodeFactory from "../types/node-factory.js"; import type Block from "./block.js"; export type Context = { block: Block; directives: Map; factory: NodeFactory; host: Node; key: Evaluator; observables: [key: ObservablePath[], value: ObservablePath[]]; parent: Node; scope: object; value: DestructuredEvaluator; source?: { key: string; scope: string; }; stackTrace?: StackTrace; }; export default class InjectDirective implements IDisposable { private readonly context; private readonly cancellationTokenSource; private readonly keySubscription; private readonly metadata; private readonly subscription; private disposed; private key; constructor(context: Context); private readonly task; private disposeCurrentInjection; dispose(): void; }