import { QueryList, OnInit, AfterContentInit } from '@angular/core';
import { Observable } from 'rxjs';
import { IDataSource } from './dataSources/index';
import { DataPager } from './paging/dataPager/dataPager.service';
import { IColumn } from './column';
import { ISortDirections, SortManagerService } from './sorts/index';
import { IFilter, SearchFilter } from './filters/index';
import { CardComponent } from './card/card';
import { CardContentTemplate, CardFooterTemplate } from '../cards/index';
import { ContainerHeaderTemplate, ContainerFooterTemplate, ColumnContentTemplate } from './templates/index';
import { ColumnHeaderTemplate } from './templates/columnHeader.template';
import { ISaveAction } from '../form/form';
import { ICardContainerConstructor, CardContainerType } from './builder/cardContainerBuilder.service';
export declare const cardContainerInputs: {
    builder: string;
    save: string;
};
export declare const defaultMaxColumnSorts: number;
export declare class CardContainerComponent<T> implements OnInit, AfterContentInit {
    builder: ICardContainerConstructor<T>;
    save: ISaveAction<any>;
    dataSource: IDataSource<T>;
    filters: IFilter<T, any>[];
    searchFilter: SearchFilter;
    paging: boolean;
    columns: IColumn<any>[];
    clickableCards: boolean;
    maxColumnSorts: number;
    permanentFooters: boolean;
    saveWhenInvalid: boolean;
    sortDirection: ISortDirections;
    injectedPager: DataPager;
    injectedSearchFilter: SearchFilter;
    sortManager: SortManagerService;
    type: CardContainerType;
    containerHeader: ContainerHeaderTemplate;
    containerFooter: ContainerFooterTemplate;
    cardContent: CardContentTemplate;
    cardFooter: CardFooterTemplate;
    columnTemplates: QueryList<ColumnContentTemplate>;
    columnHeaders: QueryList<ColumnHeaderTemplate>;
    externalContainerHeader: ContainerHeaderTemplate;
    externalContainerFooter: ContainerFooterTemplate;
    externalCardContent: CardContentTemplate;
    externalCardFooter: CardFooterTemplate;
    externalColumnTemplates: QueryList<ColumnContentTemplate>;
    externalColumnHeaders: QueryList<ColumnHeaderTemplate>;
    cardChildren: QueryList<CardComponent<T>>;
    readonly cards: CardComponent<T>[];
    readonly hasItems$: Observable<boolean>;
    constructor(pager: DataPager, searchFilter: SearchFilter, sortManager: SortManagerService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    openCard(): boolean;
    sort(column: IColumn<any>): void;
    getColumnTemplate(columnName: string): ColumnHeaderTemplate;
    private lookupColumn(label);
}
