import { Breakpoint, Bs5ModuleOptions } from "../types/index.js";
import { EventDispatcher } from "@ribajs/events";
export declare class Bs5Service {
    protected _options: Bs5ModuleOptions;
    protected _events: EventDispatcher;
    protected _activeBreakpoint: Breakpoint | null;
    static instance?: Bs5Service;
    protected constructor(options: Bs5ModuleOptions);
    static getSingleton(): Bs5Service;
    static setSingleton(options?: Bs5ModuleOptions): Bs5Service;
    protected onBreakpointChanges(): void;
    protected setActiveBreakpoint(breakpoint: Breakpoint): void;
    protected addEventListeners(): void;
    protected removeEventListeners(): void;
    protected _onViewChanges(): void;
    protected onViewChanges: (...params: any[]) => Promise<any>;
    sortBreakpoints(breakpoints: Breakpoint[]): void;
    get options(): Bs5ModuleOptions;
    get activeBreakpoint(): Breakpoint | null;
    get breakpointNames(): string[];
    get events(): EventDispatcher;
    on(eventName: "breakpoint:changed", cb: (activeBreakpoint: Breakpoint) => void, thisContext?: any): void;
    once(eventName: "breakpoint:changed", cb: (activeBreakpoint: Breakpoint) => void, thisContext?: any): void;
    off(eventName: "breakpoint:changed", cb: (activeBreakpoint: Breakpoint) => void, thisContext?: any): void;
    getBreakpointByDimension(dimension: number, breakpoints?: Breakpoint[]): Breakpoint | null;
    getBreakpointByName(name: string, breakpoints?: Breakpoint[]): Breakpoint | null;
    getNextBreakpointByName(name: string): string | null;
    getPrevBreakpointByName(name: string): string | null;
    isBreakpointGreaterThan(isBreakpointName: string, compareBreakpointName: string): boolean | null;
    isBreakpointSmallerThan(isBreakpointName: string, compareBreakpointName: string): boolean | null;
    isActiveBreakpointGreaterThan(compareBreakpoint: string): boolean | null;
    isActiveBreakpointSmallerThan(compareBreakpoint: string): boolean | null;
}
