import { Observable } from 'rxjs';
import { SdsTableColumnComponent } from './table-column/table-column.component';
import { TableSortMethod, SdsTablePaginationOutput, SdsTablePaginationInput } from './table.model';
export declare class SdsTableService {
    private _columns;
    private _defaultSort;
    private _defaultPaginationSize;
    private SOURCE_DATA_LIST_DEBOUNCE_MS;
    private rowsToDisplay;
    private paginationToDisplay;
    private _sortedList;
    private _filteredList;
    private _sortConfig;
    private _filterConfig;
    private _paginationConfig;
    private _subscriptions;
    constructor(dataSource: Observable<any[]>, _columns: SdsTableColumnComponent[], _defaultSort?: TableSortMethod, _defaultPaginationSize?: number);
    cleanUp(): void;
    getRowsToDisplay(): Observable<any[]>;
    getPaginationToDisplay(): Observable<SdsTablePaginationOutput>;
    applySort(componentToSort: SdsTableColumnComponent): void;
    applyPagination(paginationInput: SdsTablePaginationInput): void;
    private sort;
    private filter;
    private paginate;
    private nextSortOrder;
    private getSortFunction;
    private _setDefaultSort;
    private _sortOnColumnOrFallback;
    private getStringValue;
    private getObjectValuesAsString;
    private _setDefaultPaginationConfig;
}
