import type { Generic } from 'adopted-style-sheets'; import type { Callback } from '../enums'; import type { PropCustomClass, PropLabel, PropMax, PropTooltipAlign } from '../props'; import type { EventValueOrEventCallback, Option, Stringified } from '../types'; export type KoliBriPaginationButtonCallbacks = { [Callback.onClick]?: EventValueOrEventCallback; onChangePage?: EventValueOrEventCallback; onChangePageSize?: EventValueOrEventCallback; }; export type PaginationHasButton = { first: boolean; last: boolean; next: boolean; previous: boolean; }; type RequiredProps = { on: KoliBriPaginationButtonCallbacks; page: number; } & PropMax; type OptionalProps = { boundaryCount: number; hasButtons: boolean | Stringified; pageSize: number; pageSizeOptions: Stringified; siblingCount: number; } & PropCustomClass & PropLabel & PropTooltipAlign; export type KoliBriPaginationProps = RequiredProps & OptionalProps; type RequiredStates = { boundaryCount: number; hasButtons: PaginationHasButton; page: number; pageSize: number; pageSizeOptions: Option[]; on: KoliBriPaginationButtonCallbacks; siblingCount: number; } & PropLabel & PropMax; type OptionalStates = PropCustomClass & PropTooltipAlign; export type PaginationProps = Generic.Element.Members; export type PaginationStates = Generic.Element.Members; export type PaginationAPI = Generic.Element.ComponentApi; export {};