import type { LocationTracking, StringPluginArgChoices } from './types';
import { type BaseElem } from "base-elem-js";
export interface ICollapseDefaults extends LocationTracking {
    cssPrefix: string;
    toggleDuration: number;
    toggleGroup: boolean;
    moveToTopOnOpen: boolean;
    moveToTopOffset: number | (() => number);
    moveToTopDuration: number;
    afterOpen(btnElems: HTMLElement[], collapsibleItem: HTMLElement[]): void;
    afterClose(btnElems: HTMLElement[], collapsibleItem: HTMLElement[]): void;
    afterInit(element: HTMLElement): void;
}
export interface ICollapseOptions extends Partial<ICollapseDefaults> {
}
export default class Collapse {
    #private;
    $element: BaseElem;
    element: HTMLElement;
    params: ICollapseDefaults;
    toggling: boolean;
    $btnElems: BaseElem | null;
    btnElems: HTMLElement[];
    $activeItem: BaseElem | null;
    initLoaded: boolean;
    static defaults: ICollapseDefaults;
    static version: string;
    static pluginName: string;
    constructor(element: HTMLElement, options: ICollapseOptions | StringPluginArgChoices, index?: number);
    static remove(element: BaseElem, plugin?: Collapse): void;
    toggle(currElemID: string, allAtOnce?: boolean): void;
}
export interface CollapsePlugin {
    collapse(options?: ICollapseOptions | StringPluginArgChoices): this;
}
declare module 'base-elem-js' {
    interface BaseElem extends CollapsePlugin {
    }
}
