import type { OColumn } from '../../components/table/column/o-column.class';
import { OFilterColumn } from '../../components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component';
import { OColumnDisplay } from '../../types/table/o-column-display.type';
import { OColumnSearchable } from '../../types/table/o-column-searchable.type';
import { OColumnValueFilter } from '../../types/table/o-column-value-filter.type';
import { DefaultServiceComponentStateClass } from './o-component-state.class';
import { OTableConfiguration } from '../../types/table/o-table-configuration.type';
import { OTableFiltersStatus, OTableStoredFilter } from '../../types/table/o-table-filter-status.type';
import { OFilterBuilderValues } from '../../types/o-filter-builder-values.type';
import { OGroupedColumnTypes } from '../../types/o-grouped-column-types.type';
import { OTableExpandableRowState } from '../../types/table/o-table-expandable-row-state.type';
export declare class OTableComponentStateClass extends DefaultServiceComponentStateClass {
    protected 'sort-columns': string;
    protected 'oColumns-display': OColumnDisplay[];
    protected 'select-column-visible': boolean;
    protected 'filter': string;
    protected 'oColumns': OColumnSearchable[];
    protected 'column-value-filters': OColumnValueFilter[];
    'currentPage': number;
    'selection': any[];
    protected 'initial-configuration': OTableComponentStateClass;
    protected 'filter-column-active': boolean;
    protected 'filter-columns': OFilterColumn[];
    protected 'filter-column-active-by-default': boolean;
    protected 'grouped-columns': string[];
    protected 'user-stored-filters': OTableFiltersStatus[];
    protected 'user-stored-configurations': OTableConfiguration[];
    protected 'filter-builder-values': OFilterBuilderValues[];
    protected 'grouped-column-types': OGroupedColumnTypes[];
    get filterBuilderValues(): OFilterBuilderValues[];
    set filterBuilderValues(value: OFilterBuilderValues[]);
    get selectColumnVisible(): boolean;
    set selectColumnVisible(value: boolean);
    get quickFilterValue(): string;
    set quickFilterValue(value: string);
    get columnsDisplay(): OColumnDisplay[];
    set columnsDisplay(value: OColumnDisplay[]);
    getColumnDisplay(oCol: OColumn): OColumnDisplay;
    get initialConfiguration(): OTableComponentStateClass;
    set initialConfiguration(value: OTableComponentStateClass);
    get sortColumns(): string;
    set sortColumns(value: string);
    get groupedColumnTypes(): OGroupedColumnTypes[];
    set groupedColumnTypes(value: OGroupedColumnTypes[]);
    get filterColumns(): OFilterColumn[];
    set filterColumns(value: OFilterColumn[]);
    get filterColumnActiveByDefault(): boolean;
    get groupedColumns(): string[];
    set groupedColumns(value: string[]);
    get columnValueFilters(): OColumnValueFilter[];
    set columnValueFilters(value: OColumnValueFilter[]);
    get storedFilters(): OTableFiltersStatus[];
    set expandableRows(value: OTableExpandableRowState[]);
    get expandableRows(): OTableExpandableRowState[];
    addStoredFilter(filter: OTableFiltersStatus): void;
    deleteStoredFilter(filterName: string): void;
    getStoredFilter(filterName: string): OTableStoredFilter;
    applyFilter(filterName: string): void;
    get storedConfigurations(): OTableConfiguration[];
    addStoredConfiguration(configuration: OTableConfiguration): void;
    deleteStoredConfiguration(configurationName: string): void;
    getStoredConfiguration(configurationName: string): OTableConfiguration;
    applyConfiguration(configurationName: string): void;
    reset(pageable: boolean): void;
    protected copyPropertiesFromConfiguration(properties: string[], configuration: OTableComponentStateClass): void;
}
