/** * Copyright 2023-present DreamNum Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { DocumentDataModel, ITextRangeParam, Nullable } from '@univerjs/core'; import { RxDisposable } from '@univerjs/core'; import { DocSelectionManagerService, DocSkeletonManagerService } from '@univerjs/docs'; import * as EngineRender from '@univerjs/engine-render'; import { IEditorService } from '../../services/editor/editor-manager.service'; export declare class DocBackScrollRenderController extends RxDisposable implements EngineRender.IRenderModule { protected readonly _context: EngineRender.IRenderContext; private readonly _textSelectionManagerService; private readonly _editorService; private readonly _docSkeletonManagerService; private _pendingSelectionScrollFrame; private _suppressedSelection; private _pendingExplicitRange; private _selectionBeforeExplicitRange; private _scrollingToRange; constructor(_context: EngineRender.IRenderContext, _textSelectionManagerService: DocSelectionManagerService, _editorService: IEditorService, _docSkeletonManagerService: DocSkeletonManagerService); private _init; dispose(): void; private _suspendSelectionScroll; protected _cancelPendingSelectionScroll(): void; private _scheduleScrollToSelection; scrollToRange(range: ITextRangeParam, onResolved?: () => void): void; private _isSameRange; private _ownsPendingExplicitRange; private _clearExplicitRangeOwnership; private _scrollToRange; private _deferUnresolvedRange; private _scheduleScrollToReadyRange; private _isValidBodyOffset; isViewportReady(): boolean; private _scrollToPage; scrollToNode(startNodePosition: Nullable): void; protected _getVerticalScrollDelta(top: number, height: number, boundTop: number, boundBottom: number, delta: number): number; protected _scrollToSelection(): void; }