import { type DirectiveResult } from '../index.js'; import { type ElementRefLifecycle } from './ElementRefLifecycle.js'; /** * A single element, designated by the template and read back wherever it is needed: * * ```ts * readonly dialog = new ElementRef() * ``` * ```html * * ``` * * It is a lit `Ref`, so lit's own `ref` directive fills it too — without options. What it adds is the * {@link options} the template declares alongside the element, and an {@link ElementRefLifecycle}. * * An element no template can put a directive on is designated through {@link set} and {@link delete}. * * @see ElementRefs for many elements. */ export declare class ElementRef { private readonly lifecycle; constructor(lifecycle?: ElementRefLifecycle); private _value?; /** The designated element. */ get value(): T | undefined; set value(element: T | undefined); private _options?; /** What the element was declared with. */ get options(): TOptions | undefined; /** Designates the element it is rendered on. */ readonly ref: (options: TOptions) => DirectiveResult; /** Designates the element by hand. `undefined` forgets the current one. */ set(element: T | undefined, options: TOptions): void; /** Forgets the element, if it is the current one. */ delete(element: T): boolean; } //# sourceMappingURL=ElementRef.d.ts.map