import { EventEmitter } from '@angular/core';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import * as i0 from "@angular/core";
export declare abstract class AbstractSortableListComponent<T> {
    elementsList: Array<T>;
    secondListSearch: string;
    dragAndDropEnabled: boolean;
    elementsListChange: EventEmitter<T[]>;
    deleteWithSupr: boolean;
    showIcon: boolean;
    constructor();
    dbClickSelectedItem(element: T): void;
    getDescription(element: T): string;
    getSelectionFieldValue(element: T): boolean;
    handleDragEnter(event: any): boolean;
    handleDragOver(event: any): boolean;
    handleDragLeave(event: any): boolean;
    selectElement(element: T, ev: KeyboardEvent): void;
    getSelectedRows(): Array<T>;
    removeElement(element: T, event: KeyboardEvent): void;
    dropped(event: CdkDragDrop<T[]>): void;
    abstract getDescriptionField(element?: T): string;
    abstract getSelectionField(element?: T): string;
    abstract getIcon(element?: T): string;
    private handleDrag;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractSortableListComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractSortableListComponent<any>, never, never, { "elementsList": { "alias": "elementsList"; "required": false; }; "secondListSearch": { "alias": "secondListSearch"; "required": false; }; "dragAndDropEnabled": { "alias": "dragAndDropEnabled"; "required": false; }; }, { "elementsListChange": "elementsListChange"; }, never, never, false, never>;
}
