export interface PaginationOptions {
    totalItems: number;
    currentPage: number;
    pageSize: number;
    maxPages?: number;
}
export interface PaginationResult {
    currentPage: number;
    totalPages: number;
    pageSize: number;
    totalItems: number;
    hasNextPage: boolean;
    hasPreviousPage: boolean;
    startIndex: number;
    endIndex: number;
}
export interface InfiniteScrollOptions {
    threshold?: number;
    loading?: boolean;
    hasMore?: boolean;
    onLoadMore: () => void;
}
export interface LoadMoreOptions {
    loading?: boolean;
    hasMore?: boolean;
    buttonText?: string;
    loadingText?: string;
    onLoadMore?: () => void;
}
export type PaginationDisplayMode = 'numbers' | 'infinite-scroll' | 'load-more';
export interface PaginationConfig extends PaginationOptions {
    displayMode?: PaginationDisplayMode;
    infiniteScrollOptions?: InfiniteScrollOptions;
    loadMoreOptions?: LoadMoreOptions;
    onPageChange?: (page: number) => void;
    className?: string;
    ariaLabel?: string;
}
