import BaseElement from 'gmfapi/elements/BaseElement';
import { TemplateResult } from 'lit';
import { Subscription } from 'rxjs';
import 'jquery';
import 'bootstrap/js/src/tooltip';
/**
 * Base element of the application tools icon.
 *
 * Example:
 * ```js
 *    import {html, css} from 'lit';
 *    import {customElement} from 'lit/decorators.js';
 *
 *    // @ts-ignore
 *    @customElement('my-button')
 *    export class MyToolButtonElement extends (window as any).gmfapi.elements.ToolButtonElement {
 *      constructor() {
 *        super(panelName);
 *      }
 *
 *      render(): TemplateResult {
 *        return html`
 *          <button
 *            @click=${() => this.click_()}
 *            class="btn btn-default ${this.active_ ? 'active' : ''}"
 *            data-toggle="tooltip"
 *            data-placement="left"
 *            data-original-title="${i18next.t('Title')}"
 *          >
 *            <span class="fa-solid fa-my-icon"></span>
 *          </button>
 *        `;
 *      }
 *    }
 * ```
 */
export default class ToolButtonElement extends BaseElement {
    protected active_: boolean;
    protected title_: boolean;
    protected subscriptions: Subscription[];
    protected panelName_: string;
    static styles: import("lit").CSSResult[];
    constructor(panelName: string);
    connectedCallback(): void;
    protected activePanels_(panels: string[]): void;
    protected click_(): void;
    render(): TemplateResult;
    firstUpdated(): void;
}
/**
 * Default implementation of the application tools icon.
 *
 * Example with an icon classes:
 * ```js
 *    <gmf-tool-button slot="tool-button" iconClasses="fa-solid fa-print" panelName="my-panel"></gmf-tool-button>
 * ```
 *
 * Example with a slot:
 * ```js
 *    <gmf-tool-button slot="tool-button" panelName="my-panel">
 *      <span>
 *        <i class="fa-solid fa-arrow-pointer"></i>
 *      </span>
 *    </gmf-tool-button>
 * ```
 */
export declare class ToolButtonDefault extends ToolButtonElement {
    panelName: string;
    title: string;
    iconClasses: string;
    connectedCallback(): void;
    render(): TemplateResult;
}
