import { LitElement, PropertyValues, nothing, type TemplateResult } from 'lit';
import type { HelpTopic } from './help_topic.js';
import '../md/icons/ui-icon.js';
import '../md/icon-button/ui-icon-button.js';
import '../elements/highlight/marked-highlight.js';
/**
 * A panel that displays help content for a specific topic.
 * This component is used by the HelpCoordinator to show help information.
 * Uses the popover API to ensure it appears in the top layer.
 * @fires close - Dispatched when the panel is closed.
 */
export declare class HelpPanel extends LitElement {
    static styles: import("lit").CSSResult[];
    /**
     * The help topic to display in the panel.
     * This should be set by the HelpCoordinator when a help request is made.
     */
    accessor topic: HelpTopic | undefined;
    /**
     * The element that triggered the help request.
     * This is used to position the help panel relative to the triggering element.
     * Might not always be set, depending on how the help request is triggered.
     */
    accessor trigger: HTMLElement | undefined;
    /**
     * Whether the panel is currently opened.
     * This is controlled by the HelpCoordinator and reflects the current state of the panel.
     */
    accessor opened: boolean;
    private accessor isDragging;
    private accessor position;
    private dragOffset;
    /**
     * Duration of the opening/closing animation in ms.
     * This is defined in the css file.
     */
    protected animationDuration: number;
    constructor();
    protected updated(cp: PropertyValues<this>): void;
    /**
     * Handles the popover toggle event
     */
    private handlePopoverToggle;
    resetPositionAfterAnimation(): void;
    private renderMarkdown;
    /**
     * Handles the close event for the help panel.
     * Dispatches a custom 'close' event and sets the opened state to false.
     * The event informs the help coordinator or any parent component that the panel has been closed.
     */
    protected handleClose(): void;
    /**
     * Handles the start of a drag operation.
     * Only initiates drag if not clicking on interactive elements or text content.
     */
    protected handleMouseDown(event: MouseEvent): void;
    /**
     * Checks if the click is on padding area (not on text content)
     */
    private isClickOnPadding;
    /**
     * Handles mouse movement during drag operation.
     */
    private handleMouseMove;
    /**
     * Handles the end of a drag operation.
     */
    private handleMouseUp;
    connectedCallback(): void;
    firstUpdated(): void;
    /**
     * Updates scroll shadow opacity based on scroll position
     */
    private handleScroll;
    private updateScrollShadows;
    disconnectedCallback(): void;
    render(): TemplateResult<1> | typeof nothing;
    /**
     * Renders examples section, handling both string and array formats
     */
    private renderExamples;
}
declare global {
    interface HTMLElementTagNameMap {
        'help-panel': HelpPanel;
    }
}
//# sourceMappingURL=help_panel.d.ts.map