import { LitElement } from 'lit';
import type { Bindings } from '../../search/atomic-search-interface/atomic-search-interface';
import type { InitializableComponent } from '../../../decorators/types';
import '../../common/atomic-icon/atomic-icon';
/**
 * The `atomic-ipx-button` component renders a button that toggles the IPX modal.
 *
 * @part ipx-button - The main button element.
 * @part button-icon - The icon container within the button.
 * @part button-text - The text label within the button.
 * @part ipx-close-icon - The close icon.
 * @part ipx-open-icon - The open icon.
 * @part container - The container div.
 *
 * @cssprop --atomic-ipx-button-height - The height of the IPX button.
 */
export declare class AtomicIpxButton extends LitElement implements InitializableComponent<Bindings> {
    static styles: import("lit").CSSResult;
    /**
     * The label that will be shown to the user.
     */
    label?: string;
    /**
     * The close icon of the button.
     */
    closeIcon: string;
    /**
     * The open icon of the button.
     */
    openIcon: string;
    /**
     * Whether the IPX modal is open.
     */
    isModalOpen: boolean;
    bindings: Bindings;
    error: Error;
    private recommendationsLoaded;
    initialize(): void;
    private getRecommendations;
    private onClick;
    private renderIPXButton;
    render(): import("lit-html").TemplateResult<1>;
    private get ipxModal();
    private open;
    private close;
    private getIcon;
    private cleanupSVGStyles;
    private getIconWidth;
    private getIconHeight;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-ipx-button': AtomicIpxButton;
    }
}
