import { TableFeature } from '../core/table'; import { OnChangeFn, Updater, Column, Cell, RowData } from '../types'; export type ColumnPinningPosition = false | 'left' | 'right'; export interface ColumnPinningState { left?: string[]; right?: string[]; } export interface ColumnPinningTableState { columnPinning: ColumnPinningState; } export interface ColumnPinningOptions { onColumnPinningChange?: OnChangeFn; enablePinning?: boolean; } export interface ColumnPinningDefaultOptions { onColumnPinningChange: OnChangeFn; } export interface ColumnPinningColumnDef { enablePinning?: boolean; } export interface ColumnPinningColumn { getCanPin: () => boolean; getPinnedIndex: () => number; getIsPinned: () => ColumnPinningPosition; pin: (position: ColumnPinningPosition) => void; } export interface ColumnPinningRow { getLeftVisibleCells: () => Cell[]; getCenterVisibleCells: () => Cell[]; getRightVisibleCells: () => Cell[]; } export interface ColumnPinningInstance { setColumnPinning: (updater: Updater) => void; resetColumnPinning: (defaultState?: boolean) => void; getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean; getLeftLeafColumns: () => Column[]; getRightLeafColumns: () => Column[]; getCenterLeafColumns: () => Column[]; } export declare const Pinning: TableFeature;