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 { } 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 { } }