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 {};