import * as _angular_core from '@angular/core'; import { InjectionToken, Signal, Provider } from '@angular/core'; import { WritingDirection } from 'forty-cdk/core'; import * as forty_cdk_pagination from 'forty-cdk/pagination'; /** * One entry in the computed visible-page list: either a clickable page number * or an ellipsis gap standing in for a collapsed run of pages. */ interface PaginationItem { /** Discriminator: a real page button, or a non-interactive ellipsis gap. */ readonly type: 'page' | 'ellipsis'; /** 1-based page number. Present only when `type` is `'page'`. */ readonly value?: number; } /** * Coordination contract owned by `ForPagination`. Page buttons, previous, and * next pieces inject it to read the current page / derived list and drive * navigation from a single source of truth. */ interface ForPaginationContext { /** * The consumer-bound 1-based page model. May hold an out-of-range value; use * `effectivePage` for anything that must reflect a valid page. */ readonly page: Signal; /** * The current page clamped to `[1, max(1, count)]`. This is the value every * piece must read for display and navigation semantics, so an out-of-range * `page` still resolves to a real page (matching `aria-current`, the visible * list, and previous/next math). */ readonly effectivePage: Signal; /** Total number of pages. */ readonly count: Signal; /** Whether the whole control is disabled. */ readonly disabled: Signal; /** The computed visible-page list (page numbers + ellipsis gaps). */ readonly items: Signal; /** Whether the current page is the first (no previous page). */ readonly isFirst: Signal; /** Whether the current page is the last (no next page). */ readonly isLast: Signal; /** Navigate to `page`, clamped to `[1, count]`. No-op when disabled. */ goToPage(page: number): void; /** Navigate to the previous page. No-op at the first page or when disabled. */ previous(): void; /** Navigate to the next page. No-op at the last page or when disabled. */ next(): void; } /** DI token providing the pagination context to descendant pieces. */ declare const FOR_PAGINATION_CONTEXT: InjectionToken; /** * Headless pagination navigation landmark, implementing the * [WAI-ARIA `navigation` landmark](https://www.w3.org/WAI/ARIA/apg/patterns/landmarks/examples/navigation.html) * with [`aria-current="page"`](https://www.w3.org/TR/wai-aria-1.2/#aria-current) on the active page. * * Derives the visible page list (with ellipsis gaps) from `page`, `count`, * `siblingCount`, and `boundaryCount`. Exposes `items()`, `isFirst()`, * `isLast()`, and navigation methods for the consumer template to render. * * There is no roving tabindex — each page button, previous, and next are their * own tab stops. RTL is visual-only: the resolved `dir` reflects on the host * for CSS; navigation semantics (previous = decrement, next = increment) never * change based on direction. * * @example * ```html * * ``` */ declare class ForPagination implements ForPaginationContext { #private; /** * Current 1-based page number. Two-way bindable via `[(page)]`. The implicit * `pageChange` output emits whenever the directive updates this value (via * clicks, previous, or next). Do not add a separate `pageChange` output. */ readonly page: _angular_core.ModelSignal; /** * Total number of pages. Always bind as `[count]="n"` (a number, not a * string). Required. */ readonly count: _angular_core.InputSignal; /** * Pages shown on each side of the current page before collapsing to an * ellipsis. Default read from `provideForPaginationDefaults` for the * surrounding scope (library fallback: `1`). */ readonly siblingCount: _angular_core.InputSignalWithTransform; /** * Pages always shown at each end (first and last). Default read from * `provideForPaginationDefaults` for the surrounding scope (library * fallback: `1`). */ readonly boundaryCount: _angular_core.InputSignalWithTransform; /** Whether the entire pagination control is disabled. */ readonly disabled: _angular_core.InputSignalWithTransform; /** * Writing direction. When unset (default `null`), the inherited ambient * direction is resolved from the nearest ancestor carrying a `dir` attribute * (or ``), defaulting to `'ltr'`. An explicit `[dir]` always wins. * The resolved value is reflected to the host `dir` attribute. RTL affects * visual layout only — previous/next semantics do not change. */ readonly _dirInput: _angular_core.InputSignal; readonly dir: _angular_core.Signal; /** * Accessible label for the navigation landmark. Supply this (or point * `aria-labelledby` at a visible label element) when the page contains more * than one `