import { VNode } from "../VNode";
import { VBindingsPreparer } from "../VBindingsPreparer";
import { VDirective } from "./VDirective";
import { VDirectiveParseContext } from "./VDirectiveParseContext";
import { VDOMUpdater } from "../VDOMUpdater";
/**
* Directive for binding dynamic attributes to DOM elements.
* The `v-bind` directive allows you to bind HTML attributes to expressions in your data model.
* The syntax for using the `v-bind` directive is `v-bind:attribute="expression"`, where `attribute` is the name of the HTML attribute you want to bind (e.g., `src`, `href`, `class`, etc.), and `expression` is a JavaScript expression that evaluates to the value you want to assign to that attribute.
* Example usage:
*
* The value of `imageSrc` should be defined in the component's data object.
* When the value of `imageSrc` changes, the `src` attribute of the `
` element will automatically update to reflect the new value.
* This directive is particularly useful for dynamically updating attributes based on user interactions or other data changes in your application.
* It helps keep the DOM in sync with the underlying data model, making it easier to build reactive user interfaces.
* The `v-bind` directive can also be used with shorthand syntax using a colon (:).
* For example, `:src="imageSrc"` is equivalent to `v-bind:src="imageSrc"`.
* This shorthand syntax is often used for brevity and improved readability in templates.
* Overall, the `v-bind` directive is a powerful tool for creating dynamic and responsive web applications by allowing seamless integration between the data model and the DOM.
*/
export declare class VBindDirective implements VDirective {
#private;
/**
* @param context The context for parsing the directive.
*/
constructor(context: VDirectiveParseContext);
/**
* @inheritdoc
*/
get name(): string;
/**
* @inheritdoc
*/
get vNode(): VNode;
/**
* @inheritdoc
*/
get needsAnchor(): boolean;
/**
* @inheritdoc
*/
get bindingsPreparer(): VBindingsPreparer | undefined;
/**
* @inheritdoc
*/
get domUpdater(): VDOMUpdater | undefined;
/**
* @inheritdoc
*/
get templatize(): boolean;
/**
* @inheritdoc
*/
get dependentIdentifiers(): string[];
/**
* Indicates if this directive is binding the "key" attribute.
* The "key" attribute is special and is used for optimizing rendering of lists.
* If this directive is binding the "key" attribute, it will be handled by the VForDirective.
*/
get isKey(): boolean;
/**
* Indicates if this directive is binding the "options" attribute or any of its sub-properties (e.g., "options.intersection").
* The "options" attribute is special and is used for passing options to certain directives like VIntersectionDirective.
*/
get isOptions(): boolean;
/**
* Gets the name of the attribute being bound (e.g., "src", "class", "options", "options.intersection").
*/
get attributeName(): string | undefined;
/**
* Gets the original expression string from the directive.
*/
get expression(): string | undefined;
/**
* @inheritdoc
*/
get onMount(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onMounted(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUpdate(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUpdated(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUnmount(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUnmounted(): (() => void) | undefined;
/**
* @inheritdoc
*/
destroy(): void;
}