import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { IDataTableConfig } from '../../../public-api';
export declare class SelectableTableDirective<T> implements OnInit, OnChanges {
    config: IDataTableConfig;
    key: keyof T;
    selectable: boolean;
    deselectAllRequested$: EventEmitter<void>;
    selectAllRequested$: EventEmitter<void>;
    selectionUpdated$: EventEmitter<void>;
    preSelectionUpdated$: EventEmitter<void>;
    selected: T[];
    savedSelection: T[];
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    deselectAll(): void;
    /**
     * - Remove the current batch (to avoid duplicates in the next step)
     * - then add the current batch to the selection list
     * - Emit that changes happened
     */
    selectAll(): void;
    select(item: T): void;
    deselect(toRemove: T): void;
    removeBatch(toRemove: T[]): void;
    preselect(items: T[]): void;
}
