import { type ReactNode } from "react"; import { type CarouselStageSize } from "./variants.js"; export type CarouselProps = { /** The slides. One child = one slide; the pager only renders for two or more. */ children: ReactNode; /** Controlled index of the active slide. Pair with `onIndexChange`. */ index?: number; /** Initial slide for the uncontrolled mode. */ defaultIndex?: number; onIndexChange?: (index: number) => void; /** Accessible name announced for the carousel region. */ label?: string; previousLabel?: string; nextLabel?: string; /** "n of m" pager readout. Override for non-English apps. */ positionLabel?: (position: number, total: number) => string; /** * Where arrow-key paging listens. `within` (default) pages while focus is * inside the carousel. `document` pages from anywhere — for modal dialog * hosts, where focus may sit on dialog chrome outside the carousel; the * modal traps focus, so while it is open the arrows belong to it. */ arrowKeys?: "within" | "document"; stageSize?: CarouselStageSize; }; /** * Pages through its children one slide at a time: previous/next buttons, an * "n of m" readout, and arrow-key paging. With a single slide the stage * renders alone — no pager. Pager buttons at either end stay focusable * (`aria-disabled`, not `disabled`) so keyboard focus never drops to the * body mid-interaction. */ export declare function Carousel({ children, index, defaultIndex, onIndexChange, label, previousLabel, nextLabel, positionLabel, arrowKeys, stageSize, }: CarouselProps): import("react").JSX.Element | null; export * from "./variants.js"; //# sourceMappingURL=index.d.ts.map