import React from 'react'; import { CalculatedColumn, Position, ScrollPosition, SubRowDetails, RowRenderer, RowRendererProps } from './common/types'; import { ViewportProps, ViewportState } from './Viewport'; declare type SharedViewportProps = Pick, 'rowKey' | 'totalWidth' | 'rowGetter' | 'rowsCount' | 'selectedRows' | 'rowRenderer' | 'cellMetaData' | 'rowHeight' | 'scrollToRowIndex' | 'contextMenu' | 'rowSelection' | 'getSubRowDetails' | 'rowGroupRenderer' | 'enableCellSelect' | 'enableCellAutoFocus' | 'cellNavigationMode' | 'eventBus' | 'RowsContainer' | 'editorPortalTarget' | 'interactionMasksMetaData'>; declare type SharedViewportState = Pick; export interface CanvasProps extends SharedViewportProps, SharedViewportState { columns: CalculatedColumn[]; width: number; totalColumnWidth: number; onScroll(position: ScrollPosition): void; } declare type RendererProps = Pick, 'rowVisibleStartIdx' | 'rowVisibleEndIdx' | 'columns' | 'cellMetaData' | 'colVisibleStartIdx' | 'colVisibleEndIdx' | 'colOverscanEndIdx' | 'colOverscanStartIdx' | 'lastFrozenColumnIndex' | 'isScrolling'> & { ref(row: (RowRenderer & React.Component>) | null): void; key: number; idx: number; row: R; subRowDetails?: SubRowDetails; height: number; isSelected: boolean; scrollLeft: number; }; export default class Canvas extends React.PureComponent> { static displayName: string; private readonly canvas; private readonly interactionMasks; private readonly rows; private unsubscribeScrollToColumn; private _scroll; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: CanvasProps): void; handleScroll: (e: React.UIEvent) => void; onHitBottomCanvas: () => void; onHitTopCanvas: () => void; handleHitColummBoundary: ({ idx }: Position) => void; scrollToRow(scrollToRowIndex: number): void; scrollToColumn: (idx: number) => void; getRows(rowOverscanStartIdx: number, rowOverscanEndIdx: number): { row: R; subRowDetails: SubRowDetails | undefined; }[]; getScroll(): { scrollTop: number; scrollLeft: number; }; getClientScrollTopOffset(node: HTMLDivElement): number; isRowSelected(idx: number, row: R): boolean; setScrollLeft(scrollLeft: number): void; getRowByRef: (i: number) => (RowRenderer & React.Component, {}, any>) | undefined; getRowTop: (rowIdx: number) => number; getRowHeight: (rowIdx: number) => number; getRowColumns: (rowIdx: number) => CalculatedColumn[]; renderCustomRowRenderer(props: RendererProps): JSX.Element; renderGroupRow(props: RendererProps): JSX.Element; renderRow(props: RendererProps): JSX.Element; renderPlaceholder(key: string, height: number): JSX.Element; render(): JSX.Element; } export {};