import { type RefObject } from 'react'; /** Room left between the panel and the edge of the viewport, in screen pixels. */ export declare const VIEW_MARGIN_PX = 8; /** The custom property the panel reads its vertical shift from. */ export declare const SHIFT_PROPERTY = "--p1-thread-shift"; /** * How far to move a panel, in its own CSS pixels, so that it stays inside the window * it is drawn in. The panel's natural top is where it would sit unshifted; a panel * taller than the window keeps its top in view and lets its bottom go. */ export declare function shiftIntoView(naturalTop: number, height: number, viewportHeight: number, scale?: number, margin?: number): number; /** * Keeps an absolutely placed panel inside its window's viewport by writing the shift it * needs to a custom property on the element. Written straight to the DOM so a panel * riding along with a scroll never re-renders. The intersection observer catches the * moves nothing else reports, such as content above the panel reflowing. */ export declare function useKeepInView(ref: RefObject): void;