import { Component, TemplateFunction } from "@ribajs/core";
import { Dropdown } from "../../services/dropdown.js";
import { Dropdown as BSDropdown } from "bootstrap";
import { JsxBs5DropdownProps } from "../../types/jsx/jsx-dropdown-props.js";
interface Scope extends Partial<BSDropdown.Options> {
    toggle: Bs5DropdownComponent["toggle"];
    show: Bs5DropdownComponent["show"];
    hide: Bs5DropdownComponent["hide"];
    update: Bs5DropdownComponent["update"];
    isShown: boolean;
}
export declare class Bs5DropdownComponent extends Component {
    static tagName: string;
    scope: Scope;
    dropdown?: Dropdown;
    protected toggler: HTMLElement | Bs5DropdownComponent | null;
    static get observedAttributes(): (keyof JsxBs5DropdownProps)[];
    constructor();
    isShown(): any;
    toggle(event: Event, ctx: Scope, el: any): void;
    show(): void;
    hide(): void;
    update(): void;
    protected connectedCallback(): void;
    afterBind(): Promise<void>;
    protected initDropdown(): void;
    protected _onShown(): void;
    protected onShown: () => void;
    protected _onHidden(): void;
    protected onHidden: () => void;
    protected addEventListeners(): void;
    protected template(): ReturnType<TemplateFunction>;
}
export {};
