export type State = {
    isTopAffixed: boolean;
    isBottomAffixed: boolean;
    width?: number;
};
type Coordinates = {
    top: number;
    bottom: number;
};
type ValuesToComputeAffixedState = {
    coordinates: Coordinates;
    offsetTop?: number;
    offsetBottom?: number;
    target: HTMLElement | Window | undefined;
};
export declare function getWindowHeight(): number;
export declare function computeAffixedState({ coordinates, offsetTop, offsetBottom, target, }: ValuesToComputeAffixedState): State;
export type Context = {
    offsetTop?: number;
    offsetBottom?: number;
    element: HTMLElement | undefined;
    target: HTMLElement | Window | undefined;
    setState: (state: State) => void;
    getState: () => State;
    initialPosition?: DOMRect | undefined;
};
export declare function handleThrottledEvent(eventName: string | null, context: Context): void;
type Options = {
    handler: (eventName: string, event: Event) => void;
    useCapture?: (eventName: string) => boolean;
    wait?: number;
};
export declare function useEventsHandlerWithThrottle(events: string[], { handler, useCapture, wait, }: Options): () => void;
export {};
