import * as React from 'react'; import type { CarouselRailSlide } from './types.js'; export type CarouselRailIndicatorsAs = 'tabs' | 'buttons'; export interface CarouselRailContextValue { index: number; count: number; loop: boolean; /** Rotation is running right now (gate open, not stopped, not paused). */ autoplayActive: boolean; /** The continuous gate: allowContinuous + motion=full + a * [data-ag-continuous="on"] ancestor (contract ยง9: every loop needs all three). */ autoplayGate: boolean; autoplayStopped: boolean; setAutoplayStopped(v: boolean): void; overMedia: boolean; /** Resolved indicator variant (Indicators `semantics` wins over Root `indicatorsAs`). */ indicatorsAs: CarouselRailIndicatorsAs; /** Lets an Indicators part nested below Root's direct children declare its variant. */ registerIndicatorsAs(v: CarouselRailIndicatorsAs | undefined): void; slides: CarouselRailSlide[]; /** Move to slide `i` (clamped) and scroll the viewport to it. */ goTo(i: number): void; /** Move by `d` (wrapping when loop) and scroll; returns the new index. */ step(d: number): number; viewportRef: React.RefObject; viewportId: string; } export declare const CarouselRailContext: React.Context; export declare function useCarouselRail(part: string): CarouselRailContextValue; export declare const useIsoLayoutEffect: typeof React.useEffect; /** Logical direction of the carousel (arrows and scroll offsets flip in RTL). */ export declare function isRtl(el: Element | null): boolean; //# sourceMappingURL=crContext.d.ts.map