import { Observable } from 'rxjs'; import { Sizer } from '../../sizer.class'; import { Dragger } from '../../dragger.class'; import { Viewport } from '../../../../utils/viewport'; import { Selection, SelectionArgs } from '../../selection.class'; import { Cols } from '../../cols/cols.class'; import { Rows } from '../../rows.class'; import { Dom } from '../../dom.class'; import { Chain } from '../../chain.class'; import { AbstractSorter } from './sorter.class'; import { AbstractMenu } from './menu/menu.component'; import { BodyCell } from '../../../cells/holders/body-cell.component'; import { HeaderCell } from '../../../cells/holders/header-cell.component'; import { RemoteCol } from '../remote/table.class'; import { LocalCol } from '../local/table.class'; export interface IAbstractCol { minWidth: number; cell: BodyCell; title?: () => string; isVisible?: boolean; isPinned?: boolean; header?: HeaderCell; } export interface ICol extends RemoteCol, LocalCol { id?: string; isControlable?: boolean; } export interface ColsArgs { templates: ColsMap; isDragable?: boolean; isSizable?: boolean; } export interface ColsMap { [id: string]: ICol; } export interface RowsArgs { source: Observable; maxVisibleCount?: number; } export interface TableArgs { id: string; rows: RowsArgs; cols: ColsArgs; isCashable?: boolean; selection?: SelectionArgs; } export declare abstract class AbstractTable { readonly id: string; readonly isCashable: boolean; readonly dom: Dom; readonly cols: Cols; readonly rows: Rows; readonly sizer: Sizer; readonly dragger: Dragger; readonly selection: Selection; readonly viewport: Viewport; readonly source: Observable; abstract chain: Chain; abstract sorter: AbstractSorter; abstract menu: AbstractMenu>; constructor({ id, isCashable, rows, cols, selection }: TableArgs); }