import { LitElement, type TemplateResult } from 'lit';
import type { HelpServiceController } from './help_service_controller.js';
import type { HelpTopic } from './help_topic.js';
import './help_panel.js';
export interface HelpRequestDetail {
    /**
     * The category of the help request, which determines where to look for help content.
     */
    category: string;
    /**
     * The ID of the help request, which identifies the specific help topic.
     */
    id: string;
    /**
     * The target element that triggered the help request.
     * This can be used to position the help panel relative to the element.
     */
    target: HTMLElement;
}
/**
 * The main coordinator for the help system.
 * This element should be placed once in your application root and will:
 * - Listen for help requests from anywhere in the DOM
 * - Show/hide the help panel
 * - Coordinate between the help service and UI components
 *
 * It relies on the `HelpServiceController` to fetch and manage help topics.
 * Make sure to configure the `helpService` property with an instance of `HelpServiceController`.
 *
 * Usage:
 * ```ts
 * const helpServiceInstance = new HelpServiceController({
 *   categories: {
 *     property: '/help/property.yaml',
 *     entity: '/help/entity.yaml',
 *   },
 *   version: '1.0.0',
 * })
 * ```
 * ```html
 * <help-coordinator .helpService="${helpServiceInstance}"></help-coordinator>
 * ```
 */
export declare class HelpCoordinator extends LitElement {
    /**
     * The help category of the current help request.
     * @attribute
     */
    accessor category: string | undefined;
    /**
     * The help ID of the current help request.
     * @attribute
     */
    accessor helpId: string | undefined;
    accessor topic: HelpTopic | undefined;
    private accessor opened;
    /**
     * 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.
     */
    private accessor trigger;
    /**
     * The help service controller instance.
     * This should be configured with the appropriate categories and version.
     */
    accessor helpService: HelpServiceController | undefined;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private handleHelpRequest;
    requestTopic(category: string, id: string, trigger: HTMLElement): Promise<void>;
    private trackHelpUsage;
    private showHelpNotAvailable;
    protected handleClose(): void;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'help-coordinator': HelpCoordinator;
    }
}
//# sourceMappingURL=help_coordinator.d.ts.map