import { BehaviorSubject } from 'rxjs'; import { Ring } from './chain.class'; import { Checkbox } from '../../components/checkbox/checkbox.component'; import { Casher } from './cash.class'; import { AbstractTable } from './context/abstract/table.class'; export declare type SelectionMode = 'single' | 'multi' | 'none'; export interface SelectionArgs { mode: SelectionMode; toggle: (row: D) => void; onChange: (val: D, selected: D[], others: D[]) => void; isSelected: (row: D) => boolean; isDisabled?: (row: D) => boolean; } export declare const stubSelection: SelectionArgs; export declare class Selection extends Casher implements Checkbox, Ring { private ctx; input: BehaviorSubject; output: BehaviorSubject; readonly mode: SelectionMode; readonly isSelected: (val: D) => boolean; readonly toggle: (val: D) => void; readonly select: (val: D) => void; readonly unselect: (val: D) => void; readonly isDisabled?: (val: D) => boolean; readonly isSomeSelected: boolean; constructor(ctx: AbstractTable, { mode, toggle, onChange, isSelected, isDisabled }: SelectionArgs); subscribe(): import("rxjs").Subscription; unselectAll(): void; selectAll(): void; getSelected(): [D[], D[]]; save(): D[]; restore(rows: D[]): void; }