import { Component, TemplateFunction } from "@ribajs/core";
import { TouchEventsService, TouchSwipeData } from "@ribajs/extras";
import { EventDispatcher } from "@ribajs/events";
import { Bs5Service } from "../../services/index.js";
import { JsxBs5SidebarProps, Bs5SidebarComponentScope, SidebarState } from "../../types/index.js";
export declare class Bs5SidebarComponent extends Component {
    static tagName: string;
    static states: string[];
    protected computedStyle?: CSSStyleDeclaration;
    protected autobind: boolean;
    _debug: boolean;
    protected bs5: Bs5Service;
    protected touch: TouchEventsService;
    static get observedAttributes(): (keyof JsxBs5SidebarProps)[];
    events?: EventDispatcher;
    protected routerEvents: EventDispatcher;
    defaults: Bs5SidebarComponentScope;
    scope: Bs5SidebarComponentScope;
    constructor();
    setState(state: SidebarState): void;
    getState(): SidebarState;
    getShowMode(): SidebarState;
    hide(): void;
    show(): void;
    toggle(): void;
    protected preventScrolling(scrollEl?: HTMLElement): void;
    protected allowScrolling(scrollEl?: HTMLElement): void;
    protected connectedCallback(): void;
    protected onBreakpoint(): void;
    protected addEventListeners(): void;
    protected removeEventListeners(): void;
    protected initToggleButtonEventDispatcher(): void;
    protected initRouterEventDispatcher(): void;
    protected _onSwipe(event: CustomEvent<TouchSwipeData>): void;
    protected onSwipe: (event: CustomEvent<TouchSwipeData>) => void;
    protected onHidden(): void;
    protected onMove(state: SidebarState): void;
    protected onSide(state: SidebarState): void;
    protected onOverlap(state: SidebarState): void;
    protected triggerState(): void;
    protected onStateChange(): void;
    protected get width(): string;
    protected set width(width: string);
    protected setStateByEnvironment(): void;
    protected _onEnvironmentChanges(): void;
    protected onEnvironmentChanges: (...params: any[]) => Promise<any>;
    protected getContainers(): NodeListOf<HTMLUnknownElement> | undefined;
    protected initContainers(state: SidebarState): void;
    protected setContainersStyle(state: SidebarState): void;
    protected setContainerStyle(container: HTMLUnknownElement, state: SidebarState): void;
    protected beforeBind(): Promise<any>;
    protected afterBind(): Promise<void>;
    protected requiredAttributes(): string[];
    protected parsedAttributeChangedCallback(attributeName: string, oldValue: any, newValue: any, namespace: string | null): void;
    protected disconnectedCallback(): void;
    protected template(): ReturnType<TemplateFunction>;
}
