/**
 * Pure, platform-agnostic core of the scroll-restoration primitive.
 *
 * This file deliberately contains NO React and NO DOM/native imports so the
 * logic can be unit-tested in isolation and shared verbatim by the web and
 * native barrels. The web barrel drives it with real scroll offsets; the
 * native barrel never instantiates it (native-stack already restores scroll).
 */
/**
 * Derive the storage key for a scrollable from its owning route key and an
 * optional caller sub-key.
 *
 * - `routeKey` is React Navigation's stable per-route `route.key`.
 * - `subKey` distinguishes multiple scrollables that share a single route.
 *
 * Returns `null` when there is no route key to anchor against (the scrollable
 * is not inside a navigator), which the caller treats as "do not persist".
 */
export declare function deriveScrollKey(routeKey: string | undefined, subKey?: string): string | null;
/**
 * In-memory map of `scrollKey -> last-known scroll offset`.
 *
 * Mirrors the semantics of Bluesky's `Map<screenKey, scrollY>`: offsets live
 * only for the lifetime of the document/session. We never persist them — a
 * full reload should start at the top — and we never auto-evict, because a
 * route can be revisited via browser Forward/Back long after it blurred.
 */
export declare class ScrollOffsetStore {
    private readonly offsets;
    /** Persist the offset for a key. A negative offset is clamped to 0. */
    save(key: string, offset: number): void;
    /**
     * Read the saved offset for a key. Returns `0` when nothing was saved, so
     * callers can restore unconditionally (an unseen list restores to the top).
     */
    read(key: string): number;
    /** Whether an offset was ever saved for this key. */
    has(key: string): boolean;
    /** Drop a saved offset (e.g. when a route is permanently removed). */
    forget(key: string): void;
    /** Clear every saved offset. Primarily for tests and full resets. */
    clear(): void;
    /** Number of distinct keys currently tracked. */
    get size(): number;
}
//# sourceMappingURL=store.d.ts.map