import type { CarouselAlignment, CarouselVariant } from './types.ts'; export type CarouselKeylineKind = 'collapsed' | 'small' | 'medium' | 'large'; export interface CarouselKeyline { kind: CarouselKeylineKind; size: number; loc: number; locOffset: number; } export interface CarouselKeyframe { percent: number; x: number; clip: number; } export interface CarouselStrategyInput { variant: CarouselVariant; alignment: CarouselAlignment; itemCount: number; availableSpace: number; itemSize: number; spacing: number; smallMin: number; smallMax: number; } export interface CarouselArrangement { smallCount: number; mediumCount: number; largeCount: number; smallSize: number; mediumSize: number; largeSize: number; stride: number; itemSize: number; spacing: number; focal: number; keylines: CarouselKeyline[]; scrollMax: number; trackSize: number; } export declare const arrange: (input: CarouselStrategyInput) => CarouselArrangement; export declare const placeItem: (arrangement: CarouselArrangement, index: number, scroll: number) => { x: number; clip: number; }; export declare const shiftSteps: (arrangement: CarouselArrangement, towards: "start" | "end") => CarouselArrangement[]; export interface CarouselTrack { arrangement: CarouselArrangement; atStart: CarouselArrangement[]; atEnd: CarouselArrangement[]; startShift: number; endShift: number; scrollMax: number; trackSize: number; } export declare const morphTrack: (arrangement: CarouselArrangement) => CarouselTrack; export declare const placeItemOnTrack: (track: CarouselTrack, index: number, scroll: number) => { x: number; clip: number; }; export declare const notches: (track: CarouselTrack) => number[]; export declare const itemKeyframes: (track: CarouselTrack, index: number, subdivisions?: number) => CarouselKeyframe[]; export declare const minVisibleFraction: (ratio: number | null | undefined) => number;