export interface Pager { /** Ref for each element that slides. The time grid has two, its head and its body. */ trackRef: (element: HTMLElement | null) => void; /** Width of one pane. */ width: () => number; /** Offset every track by `dx` px, following the finger. */ move: (dx: number) => void; /** Animate to the next (`1`) or previous (`-1`) pane and page, or back (`0`). */ settle: (step: -1 | 0 | 1) => void; /** Jump to the end of a running settle: a new press arrived before it finished. */ finish: () => void; } /** * Drives the three panes a pageable view renders: previous, current and next, keyed by period, so * after paging the pane that slid in is the same DOM node as the one now current. The track is * reset in the same commit that swaps them, which is why nothing flashes. * * `focusFallback` receives focus when it would otherwise be left inside a pane that just went inert. */ export declare function usePager(periodKey: string, onPage: (step: 1 | -1) => void, focusFallback: () => HTMLElement | null): Pager;