import type { LocationTracking, PrimaryClickElems, StringPluginArgChoices } from './types'; import { type BaseElem } from "base-elem-js"; type tabDefaultContent = string; export interface ITabsDefaults extends LocationTracking { tabsEvent: string; cssPrefix: string; addIDtoPanel: boolean; ariaLabel: boolean; defaultContent: number; tabChange(tabId: string, prevTabId: string, tabsList: HTMLElement, tabsBody: HTMLElement): void; onInit(tabsList: HTMLElement, tabsBody: HTMLElement): void; } export interface ITabsOptions extends Partial { } export default class Tabs { #private; $element: BaseElem; params: ITabsDefaults; tabsNav: HTMLElement; $tabsNav: BaseElem; $tabsNavBtns: BaseElem; tabsNavBtns: PrimaryClickElems[]; tabsBody: HTMLElement; $tabsBody: BaseElem; $tabsBodyPanels: BaseElem; prevTabId: string; initTabId: string; initDefaultContent: tabDefaultContent; static defaults: ITabsDefaults; static version: string; static pluginName: string; constructor(element: HTMLElement, options: ITabsOptions | StringPluginArgChoices); changeTab(clickElem: PrimaryClickElems, tabId: string, updateUrl?: boolean): void; static remove(element: BaseElem, plugin?: Tabs): void; } export interface TabsPlugin { tabs(options?: ITabsOptions | StringPluginArgChoices): BaseElem; } declare module 'base-elem-js' { interface BaseElem extends TabsPlugin { } } export {};