import { TemplatesComponent, ScopeBase } from "@ribajs/core";
import { JsxBs5AccordionProps, AccordionItem } from "../../types/index.js";
interface Scope extends ScopeBase {
    items: AccordionItem[];
    toggle: Bs5AccordionComponent["toggle"];
    show: Bs5AccordionComponent["show"];
    hide: Bs5AccordionComponent["hide"];
    collapseIconSrc?: string;
    collapseIconSize: number;
    showOnlyOne: boolean;
}
export declare class Bs5AccordionComponent extends TemplatesComponent {
    static tagName: string;
    protected autobind: boolean;
    _debug: boolean;
    protected templateAttributes: {
        name: string;
        required: boolean;
    }[];
    static get observedAttributes(): (keyof JsxBs5AccordionProps)[];
    protected connectedCallback(): void;
    protected requiredAttributes(): string[];
    scope: Scope;
    hide(item: AccordionItem, index: number): void;
    show(item: AccordionItem, index: number): void;
    toggle(item: AccordionItem, index: number): void;
    protected initItemEventListeners(item: AccordionItem, element: HTMLElement): void;
    protected getContentChildByIndex(): Element | undefined;
    protected onShow(element: HTMLElement, item: AccordionItem): void;
    protected onHide(element: HTMLElement, item: AccordionItem): void;
    protected transformTemplateAttributes(attributes: any): any;
    protected triggerVisibilityChangedForElement(element: Element, visible: boolean): void;
    protected template(): Promise<string | null>;
}
export {};
