import { PaginationOptions } from './pagination.types';
/**
* Headless pagination controller. Renders page buttons with ellipsis into a
* provided list element, wires ARIA and prev/next state to existing markup; it
* never applies visual styles.
*
* Markup:
* ```html
*
* ```
*/
export declare class Pagination {
private readonly root;
private readonly listEl;
private readonly prevEl;
private readonly nextEl;
private readonly totalPages;
private readonly siblingCount;
private readonly boundaryCount;
private current;
private cleanups;
private pageCleanups;
constructor(root: HTMLElement, options: PaginationOptions);
private clamp;
private init;
/** Build the page/ellipsis sequence using boundary and sibling counts. */
private range;
private numbers;
private render;
private emit;
/** Go to a page. Clamps to `1..total` and is a no-op if unchanged. */
setPage(page: number): void;
/** Go to the next page. No-op on the last page. */
next(): void;
/** Go to the previous page. No-op on the first page. */
prev(): void;
get page(): number;
get total(): number;
/** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}