import { QueryList } from '@angular/core';
import { Observable } from 'rxjs';
import { IColumn } from './column';
import { ISortDirections, SortManagerService } from './sorts/index';
import { DataPager } from './paging/dataPager/dataPager.service';
import { SearchFilter } from './filters/index';
import { CardContentTemplate, CardFooterTemplate } from '../cards/index';
import { ContainerHeaderTemplate, ContainerFooterTemplate, ColumnContentTemplate } from './templates/index';
import { ColumnHeaderTemplate } from './templates/columnHeader.template';
import { CardContainerComponent } from './cardContainer';
export declare const defaultSelectionTitle: string;
export interface IdentityItem {
    id?: number;
}
export interface ISelectionWrappedItem<T> {
    item: T;
    selected?: boolean;
    disabledSelection?: boolean;
    selectionTitle?: string;
}
export declare class SelectableCardContainerComponent<T extends IdentityItem> extends CardContainerComponent<T> {
    private _selectionFilteredData;
    private _selectionData;
    selectionColumn: IColumn<any>;
    sortDirections: ISortDirections;
    disableSelection: {
        (item: any): string;
    };
    containerHeader: ContainerHeaderTemplate;
    containerFooter: ContainerFooterTemplate;
    cardContent: CardContentTemplate;
    cardFooter: CardFooterTemplate;
    columnTemplates: QueryList<ColumnContentTemplate>;
    columnHeaders: QueryList<ColumnHeaderTemplate>;
    constructor(pager: DataPager, searchFilter: SearchFilter, sortManager: SortManagerService);
    readonly numberSelected$: Observable<number>;
    readonly selectionFilteredData$: Observable<ISelectionWrappedItem<T>[]>;
    readonly selectionData$: Observable<ISelectionWrappedItem<T>[]>;
    ngOnInit(): void;
    sortSelected(): void;
    setSelected(selections: ISelectionWrappedItem<T>[], value: boolean): void;
    private getSelection(item);
    private buildSelectionData(data, selectionData);
    private setDisableSelection(selection);
}
