import type { Definition } from 'roosterjs-editor-types'; /** * Get metadata object from an HTML element * @param element The HTML element to get metadata object from * @param definition The type definition of this metadata used for validate this metadata object. * If not specified, no validation will be performed and always return whatever we get from the element * @param defaultValue The default value to return if the retrieved object cannot pass the validation, * or there is no metadata object at all * @returns The strong-type metadata object if it can be validated, or null */ export declare function getMetadata(element: HTMLElement, definition?: Definition, defaultValue?: T): T | null; /** * Set metadata object into an HTML element * @param element The HTML element to set metadata object to * @param metadata The metadata object to set * @param def An optional type definition object used for validate this metadata object. * If not specified, metadata will be set without validation * @returns True if metadata is set, otherwise false */ export declare function setMetadata(element: HTMLElement, metadata: T, def?: Definition): boolean; /** * Remove metadata from the given element if any * @param element The element to remove metadata from * @param metadataKey The metadata key to remove, if none provided it will delete all metadata */ export declare function removeMetadata(element: HTMLElement, metadataKey?: string): void;