import { Component, TemplateFunction, ScopeBase } from "@ribajs/core";
import { EventDispatcher } from "@ribajs/events";
import { JsxBs5ToggleButtonProps } from "../../types/index.js";
type State = "undefined" | "overlay-left" | "overlay-right" | "side-left" | "side-right" | "hidden" | "added" | "removed";
interface Scope extends ScopeBase {
    targetId?: string;
    toggle: Bs5ToggleButtonComponent["toggle"];
    state: State;
    isActive: boolean;
    isClosed: boolean;
}
export declare class Bs5ToggleButtonComponent extends Component {
    static get observedAttributes(): (keyof JsxBs5ToggleButtonProps)[];
    protected requiredAttributes(): (keyof JsxBs5ToggleButtonProps)[];
    static tagName: string;
    protected autobind: boolean;
    _debug: boolean;
    protected eventDispatcher?: EventDispatcher;
    protected lifecycleEvents: EventDispatcher;
    scope: Scope;
    constructor();
    toggle(): void;
    protected onAllComponentsReady(): void;
    protected afterBind(): Promise<void>;
    protected connectedCallback(): void;
    protected onToggledEvent(state: State): void;
    protected initEventDispatcher(id: string): void;
    protected attributeChangedCallback(attributeName: string, oldValue: any, newValue: any, namespace: string | null): Promise<void>;
    protected parsedAttributeChangedCallback(attributeName: string, oldValue: any, newValue: any, namespace: string | null): void;
    protected disconnectedCallback(): void;
    protected template(): ReturnType<TemplateFunction>;
}
export {};
