import React, { ReactNode, Dispatch, HTMLAttributes, ReactElement, AnchorHTMLAttributes, MouseEvent, ChangeEvent, InputHTMLAttributes } from "react"; import { ScrollSpyState, ScrollSpyAction } from "./types"; export declare const ScrollSpyStateContext: React.Context<{ state: ScrollSpyState; dispatch: Dispatch; }>; export declare function useScrollSpyStateContext(): { state: ScrollSpyState; dispatch: React.Dispatch; }; type ScrollSpyContextType = { id: string; itemCount: number; defaultIndex: number; updateCurrentRef(index: number, refItem: HTMLElement): void; scrollToRef(refToScrollTo: HTMLElement): void; scrollToFirst(event: MouseEvent): void; scrollToLast(event: MouseEvent): void; scrollToPage(page: number): void; skipToPage(page: number): void; }; export declare const ScrollSpyContext: React.Context; export declare function useScrollSpyContext(): ScrollSpyContextType; export type ScrollSpyInputUsePropsHookProps = { className?: string; onChange?(event: ChangeEvent): void; }; export declare const useScrollSpyInputProps: ({ className, onChange, }: ScrollSpyInputUsePropsHookProps) => { className: string; type: string; min: string; max: number; maxLength: number; onChange: (event: ChangeEvent) => void; value: number; }; export type ScrollSpyInputProps = InputHTMLAttributes; export declare const ScrollSpyInput: React.MemoExoticComponent>>; export interface ScrollSpyPageProps extends HTMLAttributes { children: ReactElement; index: number; threshold?: number | number[] | undefined; } export type ScrollSpyPageUsePropsHookProps = { index: number; id?: string; }; export declare const useScrollSpyPageProps: ({ index, id }?: ScrollSpyPageUsePropsHookProps) => { id: string; }; export declare const ScrollSpyPage: React.MemoExoticComponent>>; export interface ScrollSpyAnchorProps extends AnchorHTMLAttributes { children: ReactNode; index: number; } export type ScrollSpyAnchorUsePropsHookProps = { index: number; id?: string; href?: string; onClick?(event: MouseEvent): void; }; export declare const useScrollSpyAnchorProps: ({ index, id, href, onClick }?: ScrollSpyAnchorUsePropsHookProps) => { id: string; href: string; onClick: (event: MouseEvent) => void; isActive: boolean; }; export declare const ScrollSpyAnchor: React.MemoExoticComponent>>; export type ScrollSpyRootProps = { children: ReactNode; itemCount: number; defaultIndex?: number; id?: string; }; export declare const ScrollSpyRoot: React.MemoExoticComponent<({ children, itemCount, defaultIndex, id, }: ScrollSpyRootProps) => React.JSX.Element>; export declare const ScrollSpyStateProvider: ({ children, }: { children: ReactNode; }) => React.JSX.Element; export declare const ScrollSpyReducers: { reducer: (state: ScrollSpyState | undefined, action: ScrollSpyAction) => ScrollSpyState; }; export declare const ScrollSpySelectors: { selectCurrentIndex: (state: ScrollSpyState) => number; selectCurrentPage: (state: ScrollSpyState) => number; }; export declare const ScrollSpyActions: { updateIndex: (index: number) => { type: import("./types").ScrollSpyActionType; index: number; }; }; export {};