import StyleType from '../embedded-types/style-type'; import TextNode from '../nodes/text-node'; export interface Metadata { text: string; attributes: Attributes; itemUid: string | undefined; itemType: 'entry' | 'asset' | undefined; styleType: StyleType | undefined; contentTypeUid: string | undefined; } export interface Attributes { type?: 'entry' | 'asset'; class?: string; id?: string; [key: string]: any; style?: styleObjType | string; 'sys-style-type'?: string; } export type styleObjType = { [key: string]: any; }; export interface EntryAttributes extends Attributes { 'data-sys-entry-uid': string; 'data-sys-entry-local': string; 'data-sys-content-type-uid': string; } export interface AssetAttributes extends Attributes { 'data-sys-asset-uid': string; 'data-sys-asset-filelink': string; 'data-sys-asset-contenttype': string; } export declare function createMetadata(attribute: Attributes): Metadata; export declare function nodeToMetadata(attribute: Attributes, textNode: TextNode): Metadata; /** * Serializes an Attributes object to a string of HTML attribute key-value pairs * (e.g. ` key1="value1" key2="value2"`). Keys containing forbidden characters * are skipped. Values are HTML-entity-encoded. Arrays are joined with `, `; * nested objects are serialized as `key:value;` pairs. * * @param attributes - The attributes object to serialize (e.g. from a node or metadata). * @returns A string starting with a space, followed by `key="value"` pairs suitable for inclusion in an HTML tag. */ export declare function attributeToString(attributes: Attributes): string;