import { default as CxCopyButton } from '../copy-button/copy-button.ts';
import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { Alignment, Variant } from '../../../../types/src/header';
import { CSSResultGroup, TemplateResult } from 'lit';

export default class CxHeader extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {
        'cx-copy-button': typeof CxCopyButton;
    };
    private readonly localize;
    defaultSlot: HTMLSlotElement;
    heading: HTMLHeadingElement;
    /**
     * The button’s theme variant.
     */
    variant: Variant;
    /**
     * The font size of the heading.
     * Will override the default font size by the variant if provided
     */
    fontSize: string | undefined;
    /**
     * Enables the anchor link for the header.
     */
    hasAnchorLink: boolean;
    /**
     * The anchor link for the header. This will be used as the href for the anchor link.
     */
    anchorLink: string;
    /**
     * Header alignment
     */
    alignment: Alignment;
    /**
     * Whether to disable copy button or not
     */
    disabledCopyButton: boolean;
    private cms5PageReadyTimeout;
    /**
     * Get the owner window
     */
    private get ownerWindow();
    /**
     * Get the anchor ID for the header.
     * If `hasAnchorLink` is false, it returns an empty string.
     * If `anchorLink` is provided, it returns that.
     * Otherwise, it generates an anchor based on the text content of the header,
     */
    get anchorID(): string;
    scrollToAnchor: () => void;
    constructor();
    runFirstUpdated(): void;
    runConnectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Scroll to anchor after CMS5 page is ready
     * Wait 100ms for repaint reflow shift layout (not affect by fetching api in web component)
     */
    handleCMS5PageReady(): void;
    private handleClick;
    getAnchorID(): string;
    /**
     * After Tiptap editor is destroyed, the slot element is removed.
     * This method is used to re-add the slot element.
     */
    addSlotElement(): void;
    handleHeadingChange(): void;
    private handleCopyButtonClick;
    renderHeading(content: TemplateResult): TemplateResult;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-header': CxHeader;
    }
}
