import TinyHtml from '../TinyHtml.mjs'; import TinyHtmlTemplate from './TinyHtmlTemplate.mjs'; /** * TinyHtmlAnchor is a helper class for managing elements. * It provides strongly-typed getters and setters for attributes like href, * target, rel, hreflang, referrerpolicy, and more. * * @example * const link = new TinyHtmlAnchor({ * href: 'https://example.com', * label: 'Visit Example', * target: '_blank', * rel: 'noopener noreferrer' * }); * * @extends TinyHtmlTemplate */ declare class TinyHtmlAnchor extends TinyHtmlTemplate { /** * Creates a new TinyHtmlAnchor instance. * @param {Object} config - Configuration object. * @param {string} config.href - Link URL (required). * @param {string|Element|TinyHtml} [config.label] - Link text or HTML. * @param {string} [config.target] - Target attribute. * @param {string} [config.rel] - Relationship of the linked resource. * @param {string} [config.hreflang] - Language of the linked resource. * @param {string} [config.ping] - URLs to send pings to. * @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} [config.referrerpolicy] - Referrer policy. * @param {string} [config.type] - MIME type of the linked resource. * @param {string|boolean} [config.download] - Download filename (or boolean to enable). * @param {boolean} [config.allowHtml=false] - Whether to allow HTML inside the link. * @param {string|string[]|Set} [config.tags=[]] - Initial CSS classes. * @param {string} [config.mainClass=''] - Main CSS class. * @throws {TypeError} If any attribute is invalid. */ constructor({ href, label, target, rel, hreflang, ping, referrerpolicy, type, download, allowHtml, tags, mainClass, }: { href: string; label?: string | Element | TinyHtml; target?: string; rel?: string; hreflang?: string; ping?: string; referrerpolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'; type?: string; download?: string | boolean; allowHtml?: boolean; tags?: string | string[] | Set; mainClass?: string; }); /** @param {string} href */ set href(href: string); /** @returns {string|null} */ get href(): string | null; /** @param {string} target */ set target(target: string); /** @returns {string|null} */ get target(): string | null; /** @param {string} rel */ set rel(rel: string); /** @returns {string|null} */ get rel(): string | null; /** @param {string} hreflang */ set hreflang(hreflang: string); /** @returns {string|null} */ get hreflang(): string | null; /** @param {string} ping */ set ping(ping: string); /** @returns {string|null} */ get ping(): string | null; /** @param {'no-referrer'|'no-referrer-when-downgrade'|'origin'|'origin-when-cross-origin'|'same-origin'|'strict-origin'|'strict-origin-when-cross-origin'|'unsafe-url'} referrerpolicy */ set referrerpolicy(referrerpolicy: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'); /** @returns {string|null} */ get referrerpolicy(): string | null; /** @param {string} type */ set type(type: string); /** @returns {string|null} */ get type(): string | null; /** @param {string|boolean} download */ set download(download: string | boolean); /** @returns {string|boolean|null} */ get download(): string | boolean | null; /** * Updates the link label with text, HTML, or an element. * * @param {string|Element|TinyHtml} label - The new label to set. * @param {boolean} [allowHtml=false] - Whether to allow raw HTML or DOM elements instead of plain text. * @returns {this} */ setLabel(label: string | Element | TinyHtml, allowHtml?: boolean): this; } export default TinyHtmlAnchor; //# sourceMappingURL=TinyHtmlAnchor.d.mts.map