/*!---------------------------------------------------------------------------------------------
 *  Copyright (c) StackBlitz. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import * as React from "react";
import { type ReactElement, type ReactNode } from "react";
import { type GetTargetScrollTop, type ScrollToBottom, type StickToBottomInstance, type StickToBottomOptions, type StickToBottomState, type StopScroll } from "./useStickToBottom.js";
export interface StickToBottomContext {
    contentRef: React.MutableRefObject<HTMLElement | null> & React.RefCallback<HTMLElement>;
    scrollRef: React.MutableRefObject<HTMLElement | null> & React.RefCallback<HTMLElement>;
    scrollToBottom: ScrollToBottom;
    stopScroll: StopScroll;
    isAtBottom: boolean;
    escapedFromLock: boolean;
    get targetScrollTop(): GetTargetScrollTop | null;
    set targetScrollTop(targetScrollTop: GetTargetScrollTop | null);
    state: StickToBottomState;
}
export interface StickToBottomProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children">, StickToBottomOptions {
    contextRef?: React.Ref<StickToBottomContext>;
    instance?: StickToBottomInstance;
    children: ((context: StickToBottomContext) => ReactNode) | ReactNode;
}
export declare function StickToBottom({ instance, children, resize, initial, mass, damping, stiffness, targetScrollTop: currentTargetScrollTop, contextRef, ...props }: StickToBottomProps): ReactElement;
export declare namespace StickToBottom {
    interface ContentProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
        children: ((context: StickToBottomContext) => ReactNode) | ReactNode;
        scrollClassName?: string;
    }
    function Content({ children, scrollClassName, ...props }: ContentProps): ReactElement;
}
/**
 * Use this hook inside a <StickToBottom> component to gain access to whether the component is at the bottom of the scrollable area.
 */
export declare function useStickToBottomContext(): StickToBottomContext;
