import { OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { ApiDataSource, ApiPageResponse, DataSourceRequest } from '@bravobit/bb-foundation/api';
import { Observable } from 'rxjs';
import { FormControl, FormGroup } from '@angular/forms';
export declare class BbTableColumnDef {
}
export declare class BbTable implements OnInit, OnDestroy {
    tableColumnTemplates: QueryList<BbTableColumnDef>;
    identifier: string | null;
    dataSource: ApiDataSource;
    queryFields: string[];
    sortingStrategy: 'single' | 'multiple';
    header: TemplateRef<any> | boolean;
    footer: TemplateRef<any> | boolean;
    private _sizes;
    get sizes(): number[];
    set sizes(newValue: number[]);
    trackByFn: (index: any, item: any) => any;
    trackByValue: (index: any, item: any) => any;
    request: DataSourceRequest;
    data$: Observable<{
        state: string;
        statusCode?: number;
        result?: ApiPageResponse;
    }>;
    isLoading$: Observable<boolean>;
    form: FormGroup;
    queryControl: FormControl;
    private _subscription;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get sortControl(): FormGroup;
    get pageNumberControl(): FormControl;
    get pageSizeControl(): FormControl;
    refresh(): void;
    private updateSizes;
    private composeForm;
    private watchDataChanges;
    private subscribeToChanges;
    private getQueryChanges;
    private getFormChanges;
}
