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