import type { ScrollRestorationTarget } from './types';
/**
 * A normalized read/write interface over whatever the caller registered, so
 * the hook does not branch on target shape. All methods are safe no-ops when
 * the underlying element is not yet (or no longer) attached.
 */
export interface ResolvedScroller {
    getOffset: () => number;
    setOffset: (offset: number) => void;
    /**
     * Whether the scroll container can currently hold a non-zero offset, i.e.
     * its content is taller than its viewport (`scrollHeight > clientHeight`).
     *
     * React Navigation's web stack collapses a hidden background screen so its
     * content height drops to the viewport height; while collapsed the container
     * cannot be scrolled and its `scrollTop` is forced to 0. The hook uses this
     * to ignore a spurious 0 read coming from a collapsed container rather than
     * persisting it over a previously-saved good offset. The `'window'` scroller
     * is never collapsed by the navigator, so it always reports `true`.
     */
    canScroll: () => boolean;
}
/**
 * Build a {@link ResolvedScroller} for a target. The window sentinel reads and
 * writes the document scroller; everything else operates on the resolved
 * element's `scrollTop`.
 */
export declare function createScroller(target: ScrollRestorationTarget): ResolvedScroller;
//# sourceMappingURL=scrollable.web.d.ts.map