import { ScrollIntoViewInput, ScrollIntoViewOutput } from '../../../document-api/src/index.js';
import { Editor } from '../editors/v1/core/Editor.js';
/**
 * Two paths:
 * - EntityAddress (comment / tracked change by id) → delegates to
 *   `presentation.navigateTo(target, { behavior, block })`, which
 *   handles paginated layouts, virtualized page mounting, AND story
 *   activation for entities in header/footer/footnote/endnote stories.
 *   The viewport surface defaults `behavior` to `'smooth'` so a
 *   sidebar click animates instead of teleporting; the underlying
 *   virtualized-page mount step is unaffected because the mount-trigger
 *   scroll is internal to `scrollToPositionAsync` and only the final
 *   alignment retry honors caller behavior.
 * - TextAddress / TextTarget → resolves the first segment to a PM
 *   position and calls `scrollToPositionAsync` with caller-provided
 *   `block` / `behavior` options. This path is body-only today; text
 *   targets that reference non-body stories are out of scope.
 *
 * Both paths honor the `{ success: boolean }` contract: thrown errors
 * from resolvers (e.g. ambiguous block IDs) and rejected scroll
 * promises are caught and converted into `{ success: false }` rather
 * than propagating.
 *
 * Known limitation: for a tracked change that lives in a non-body
 * story (header, footer, footnote, endnote) on a page that is not
 * currently mounted in the DOM (virtualized),
 * `presentation.navigateTo` returns `false` — the non-body navigation
 * path activates the story surface via rendered DOM candidates, and
 * offscreen pages have none. Returns `{ success: false }` in that case.
 */
export declare function scrollRangeIntoView(editor: Editor, input: ScrollIntoViewInput): Promise<ScrollIntoViewOutput>;
//# sourceMappingURL=scroll-into-view.d.ts.map