import { type AriaRole, type ComponentPropsWithoutRef } from 'react'; import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; import { type VariantProps } from 'class-variance-authority'; declare const scrollbarVariants: (props?: ({ size?: "sm" | "md" | "lg" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface ScrollAreaProps extends Omit, 'type'>, VariantProps { orientation?: 'vertical' | 'horizontal' | 'both'; size?: 'sm' | 'md' | 'lg'; /** * `auto` — scrollbar fades in on pointer-enter, fades out after `--scrollbar-fade-delay` (default). * `always` — scrollbar always visible; use for data tables. * `scroll` — scrollbar visible only while scrolling. * `hover` — alias for `auto` (Radix hover mode). * `native` — skips the custom scrollbar entirely; the OS renders its own. * Use for virtualised lists (AG Grid, @tanstack/react-virtual). */ type?: 'auto' | 'always' | 'scroll' | 'hover' | 'native'; /** * Names the scroll container. While its content overflows, the viewport * is a tab stop so keyboard users can scroll it with the arrow keys, and a * tab stop needs a name. Given `aria-label` or `aria-labelledby`, the * viewport (not the outer wrapper) carries the name and becomes a * `region`. Prefer `aria-labelledby` pointing at a heading or landmark * already on screen. */ 'aria-label'?: string; /** The id of an element whose text names the scroll container. See `aria-label`. */ 'aria-labelledby'?: string; /** * The tab stop's role. Default `region` when the scroll area is named, none * otherwise. Pass `group` when the content may hold an `