import { type ReactNode } from "react"; /** * Freeze the mount-time gate for this subtree while publishing a separate live * gate to activity rails that need later appends to animate after a bulk paint. * MessageTimeline mounts one provider per durable group, so existing groups do * not receive a context invalidation when a prepend toggles bulk mode and new * groups still capture the value from the commit that created them. */ export declare function EntranceAnimationProvider({ value, liveValue, children, }: { value: boolean; liveValue?: boolean | undefined; children: ReactNode; }): import("react").JSX.Element; /** * Live entrance gate from the nearest provider. Prefer * {@link useEntranceAnimation} for elements that must freeze the decision at * mount; use this when a stable parent (e.g. ActivityRail) needs to animate * later appends after a bulk window clears. */ export declare function useEntranceAnimationLive(): boolean; /** * Whether this element should wear the entrance animation. Captured at mount * from the nearest provider (true outside any provider) and stable for the * element's lifetime — see the module doctrine above. */ export declare function useEntranceAnimation(): boolean;