import { FileContents, LineAnnotation, NumericScrollLineAnchor, PendingCodeViewLayoutReset, RenderWindow, StickySpecs, ThemeTypes, VirtualFileMetrics } from "../types.js";
import { TextDocument } from "../editor/textDocument.js";
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
import { File, FileOptions, FileRenderProps } from "./File.js";
import { Virtualizer } from "./Virtualizer.js";
import { CodeView } from "./CodeView.js";

//#region src/components/VirtualizedFile.d.ts
declare class VirtualizedFile<LAnnotation = undefined, Caret = undefined> extends File<LAnnotation, Caret> {
  private virtualizer;
  private metrics;
  readonly __id: string;
  readonly renderType = "virtualized";
  top: number | undefined;
  height: number;
  private cache;
  private pendingRender;
  private isVisible;
  private isSetup;
  private layoutDirty;
  private forceRenderOverride;
  private currentCollapsed;
  constructor(options: FileOptions<LAnnotation, Caret> | undefined, virtualizer: Virtualizer | CodeView<LAnnotation, Caret>, metrics?: VirtualFileMetrics, workerManager?: WorkerPoolManager, isContainerManaged?: boolean);
  setMetrics(metrics?: Partial<VirtualFileMetrics>, force?: boolean): void;
  setLineAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): void;
  private syncLineAnnotations;
  protected syncEditSessionAnnotationsFromEditor(lineAnnotations: LineAnnotation<LAnnotation>[]): boolean;
  private hasLineAnnotations;
  private hasUniformLineHeights;
  getLineHeight(lineIndex: number, hasMetadataLine?: boolean): number;
  setOptions(options: FileOptions<LAnnotation, Caret> | undefined): void;
  setThemeType(themeType: ThemeTypes): void;
  private resetLayoutCache;
  private applyGhostTextRows;
  reconcileHeights(): boolean;
  onRender: (dirty: boolean) => boolean;
  updateCodeViewLayout(file: FileContents, top: number, reset?: PendingCodeViewLayoutReset, lineAnnotations?: LineAnnotation<LAnnotation>[]): number;
  private getLayoutFile;
  getLinePosition(lineNumber: number): {
    top: number;
    height: number;
  } | undefined;
  getEditorViewport(): HTMLElement | Document | undefined;
  getNumericScrollAnchor(localViewportTop: number): NumericScrollLineAnchor | undefined;
  getVirtualizedHeight(): number;
  getAdvancedStickySpecs(windowSpecs?: RenderWindow): StickySpecs | undefined;
  cleanUp(recycle?: boolean): void;
  private computeApproximateSize;
  setVisibility(visible: boolean): void;
  rerender(): void;
  syncGhostTextRows(): void;
  applyDocumentChange(textDocument: TextDocument<'file', LAnnotation>, newLineAnnotations?: LineAnnotation<LAnnotation>[], shouldUpdateBuffer?: boolean): void;
  render({
    fileContainer,
    file,
    forceRender,
    lineAnnotations,
    ...props
  }: FileRenderProps<LAnnotation>): boolean;
  protected finalizeRender(): void;
  private updatePendingRender;
  syncVirtualizedTop(): void;
  protected shouldDisableVirtualizationBuffers(): boolean;
  protected shouldGuardRebuildScroll(): boolean;
  private isSimpleMode;
  private isAdvancedMode;
  private addLayoutCheckpoint;
  private getLayoutCheckpointBeforeLineIndex;
  private getLayoutCheckpointBeforeTop;
  private getVirtualizedTop;
  private getSimpleVirtualizer;
  private getAdvancedVirtualizer;
  private isResizeDebuggingEnabled;
  private computeRenderRangeFromWindow;
}
//#endregion
export { VirtualizedFile };
//# sourceMappingURL=VirtualizedFile.d.ts.map