import { ReactNode, type ReactElement } from 'react'

interface ITab {
  id: string
  label: ReactElement | string
  content?: ReactElement | string
  children?: ReactElement | string
  className?: string
  defaultClassName?: string
  navClassName?: string
  activeNavClassName?: string
  disabled?: boolean
}

interface ITabProps {
  tabs?: ITab[]
  defaultTab?: string
  selectedTab?: string
  className?: string
  defaultContentClassName?: string
  navClassName?: string
  tabNavClassName?: string
  defaultTabNavClassName?: string
  activeTabNavClassName?: string
  defaultActiveTabNavClassName?: string
  onChange?: (tab: string) => void
  afterTabNavElements?: ReactNode
  beforeTabNavElements?: ReactNode
}

export type {
  ITab,
  ITabProps
}
