import { LitElement } from 'lit'; export type PaginationOffset = 1 | 2; export type PaginationJustify = 'start' | 'center' | 'end' | ''; export type PaginationGap = '...'; export type PageArrayItem = number | PaginationGap; /** * Event detail for page-change event */ export interface PageChangeEventDetail { page: number; pages: PageArrayItem[]; } /** * Custom event dispatched when the page changes */ export type PageChangeEvent = CustomEvent; /** * Navigation labels for first, previous, next, last buttons */ export interface NavigationLabels { first: string; previous: string; next: string; last: string; } /** * Props interface for Pagination component including event handlers */ export interface PaginationProps { /** * Current active page (1-indexed) */ current?: number; /** * Total number of pages */ totalPages?: number; /** * Number of page buttons to show on each side of current page */ offset?: PaginationOffset; /** * Horizontal alignment of pagination controls */ justify?: PaginationJustify; /** * Alternative aria-label for the navigation */ ariaLabel?: string; /** * Show bordered style (outline instead of solid background for active page) */ bordered?: boolean; /** * Show first/last page navigation buttons */ firstLastNavigation?: boolean; /** * Custom labels for navigation buttons */ navigationLabels?: NavigationLabels; /** * Event callback fired when page changes */ onPageChange?: (event: PageChangeEvent) => void; } /** * Pagination component for navigating through pages of content * * @fires {PageChangeEvent} page-change - Fired when the active page changes * @csspart ag-pagination-container - The outer container element * @csspart ag-pagination - The pagination list element * @csspart ag-pagination-item - Individual pagination item wrapper * @csspart ag-pagination-button - Individual pagination button * * @example * ```html * * ``` */ export declare class Pagination extends LitElement implements PaginationProps { current: number; totalPages: number; offset: PaginationOffset; justify: PaginationJustify; ariaLabel: string; bordered: boolean; firstLastNavigation: boolean; navigationLabels: NavigationLabels; onPageChange?: (event: PageChangeEvent) => void; constructor(); get _pages(): PageArrayItem[]; private _generatePages; private _getPaddedArray; private _generatePagingPaddedByOne; private _generatePagingPaddedByTwo; private _handlePageChange; private _getJustifyClass; static styles: import('lit').CSSResult; render(): import('lit').TemplateResult<1>; } //# sourceMappingURL=_Pagination.d.ts.map