import { AbstractTableDataSource, AbstractTableDataSourceMetadata, FilterLike, SortLike } from './abstract-table.data-source';
import { PaginatorLike } from '@rxap/data-source/pagination';
import { BaseDataSource, BaseDataSourceViewer } from '@rxap/data-source';
import { Observable, TeardownLogic } from 'rxjs';
import { Constructor } from '@rxap/utilities';
import * as i0 from "@angular/core";
export type TableDataSourceMetadata = AbstractTableDataSourceMetadata;
export declare class TableDataSource<Data extends Record<any, any>, Parameters = any> extends AbstractTableDataSource<Data> {
    private readonly dataSource;
    constructor(dataSource: BaseDataSource<Data[]>, paginator?: PaginatorLike | null, sort?: SortLike | null, filter?: FilterLike | null, parameters?: Observable<Parameters> | null, metadata?: TableDataSourceMetadata | null);
    refresh(): any;
    protected _connect(viewer: BaseDataSourceViewer): [Observable<Data[]>, TeardownLogic];
    static ɵfac: i0.ɵɵFactoryDeclaration<TableDataSource<any, any>, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TableDataSource<any, any>>;
}
export declare function RxapTableDataSource(metadataOrId: string | TableDataSourceMetadata, className?: string, packageName?: string): (target: Constructor<TableDataSource<any>>) => void;
