import * as React from 'react'; import { Primitive } from '@radix-ui/react-primitive'; type Scope = { [scopeName: string]: React.Context[]; } | undefined; type ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope; }; interface CreateScope { scopeName: string; (): ScopeHook; } type Direction = 'ltr' | 'rtl'; type Sizes = { content: number; viewport: number; scrollbar: { size: number; paddingStart: number; paddingEnd: number; }; }; declare const createScrollAreaScope: CreateScope; type ScrollAreaContextValue = { type: 'auto' | 'always' | 'scroll' | 'hover'; dir: Direction; scrollHideDelay: number; scrollArea: ScrollAreaElement | null; viewport: ScrollAreaViewportElement | null; onViewportChange(viewport: ScrollAreaViewportElement | null): void; content: HTMLDivElement | null; onContentChange(content: HTMLDivElement): void; scrollbarX: ScrollAreaScrollbarElement | null; onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void; scrollbarXEnabled: boolean; onScrollbarXEnabledChange(rendered: boolean): void; scrollbarY: ScrollAreaScrollbarElement | null; onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void; scrollbarYEnabled: boolean; onScrollbarYEnabledChange(rendered: boolean): void; onCornerWidthChange(width: number): void; onCornerHeightChange(height: number): void; }; type ScrollAreaElement = React.ElementRef; type PrimitiveDivProps = React.ComponentPropsWithoutRef; interface ScrollAreaProps extends PrimitiveDivProps { type?: ScrollAreaContextValue['type']; dir?: ScrollAreaContextValue['dir']; scrollHideDelay?: number; } declare const ScrollArea: React.ForwardRefExoticComponent>; type ScrollAreaViewportElement = React.ElementRef; interface ScrollAreaViewportProps extends PrimitiveDivProps { nonce?: string; } declare const ScrollAreaViewport: React.ForwardRefExoticComponent>; type ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement; interface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps { forceMount?: true; } declare const ScrollAreaScrollbar: React.ForwardRefExoticComponent>; type ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement; interface ScrollAreaScrollbarVisibleProps extends Omit { orientation?: 'horizontal' | 'vertical'; } type ScrollAreaScrollbarAxisPrivateProps = { hasThumb: boolean; sizes: Sizes; onSizesChange(sizes: Sizes): void; onThumbChange(thumb: ScrollAreaThumbElement | null): void; onThumbPointerDown(pointerPos: number): void; onThumbPointerUp(): void; onThumbPositionChange(): void; onWheelScroll(scrollPos: number): void; onDragScroll(pointerPos: number): void; }; type ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement; interface ScrollAreaScrollbarAxisProps extends Omit, ScrollAreaScrollbarAxisPrivateProps { } type ScrollbarContext = { hasThumb: boolean; scrollbar: ScrollAreaScrollbarElement | null; onThumbChange(thumb: ScrollAreaThumbElement | null): void; onThumbPointerUp(): void; onThumbPointerDown(pointerPos: { x: number; y: number; }): void; onThumbPositionChange(): void; }; type ScrollAreaScrollbarImplElement = React.ElementRef; type ScrollAreaScrollbarImplPrivateProps = { sizes: Sizes; hasThumb: boolean; onThumbChange: ScrollbarContext['onThumbChange']; onThumbPointerUp: ScrollbarContext['onThumbPointerUp']; onThumbPointerDown: ScrollbarContext['onThumbPointerDown']; onThumbPositionChange: ScrollbarContext['onThumbPositionChange']; onWheelScroll(event: WheelEvent, maxScrollPos: number): void; onDragScroll(pointerPos: { x: number; y: number; }): void; onResize(): void; }; interface ScrollAreaScrollbarImplProps extends Omit, ScrollAreaScrollbarImplPrivateProps { } type ScrollAreaThumbElement = ScrollAreaThumbImplElement; interface ScrollAreaThumbProps extends ScrollAreaThumbImplProps { /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const ScrollAreaThumb: React.ForwardRefExoticComponent>; type ScrollAreaThumbImplElement = React.ElementRef; interface ScrollAreaThumbImplProps extends PrimitiveDivProps { } interface ScrollAreaCornerProps extends ScrollAreaCornerImplProps { } declare const ScrollAreaCorner: React.ForwardRefExoticComponent>; interface ScrollAreaCornerImplProps extends PrimitiveDivProps { } declare const Root: React.ForwardRefExoticComponent>; declare const Viewport: React.ForwardRefExoticComponent>; declare const Scrollbar: React.ForwardRefExoticComponent>; declare const Thumb: React.ForwardRefExoticComponent>; declare const Corner: React.ForwardRefExoticComponent>; export { Corner, Root, ScrollArea, ScrollAreaCorner, type ScrollAreaCornerProps, type ScrollAreaProps, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaThumb, type ScrollAreaThumbProps, ScrollAreaViewport, type ScrollAreaViewportProps, Scrollbar, Thumb, Viewport, createScrollAreaScope };