import { createStandardAction, SortingField } from '@reltio/mdm-sdk';
import { ColumnData, ColumnFilter, ColumnSize } from '../types/basicTable';
export declare enum ActionTypes {
    CHANGE_COLUMNS = "CHANGE_COLUMNS",
    TOGGLE_FILTERS = "TOGGLE_FILTERS",
    CHANGE_FILTER = "CHANGE_FILTER",
    TOGGLE_SORT = "TOGGLE_SORT",
    CHANGE_PAGE = "CHANGE_PAGE",
    CHANGE_ROWS_PER_PAGE = "CHANGE_ROWS_PER_PAGE"
}
export type BasicTableState = {
    visibleColumns: ColumnData['id'][];
    columnsSize?: ColumnSize[];
    filters?: Record<ColumnData['id'], ColumnFilter>;
    sorting?: SortingField;
    page: number;
    rowsPerPage: number;
    rowsPerPageOptions?: number[];
    [key: string]: unknown;
};
export type BasicTableAction = ReturnType<ReturnType<typeof createStandardAction>>;
export type BasicTableReducer = <TableState extends BasicTableState, TableAction extends BasicTableAction>(state: TableState, action: TableAction) => TableState;
export declare const actions: {
    changeColumns: (payload: any) => {
        type: any;
        payload: any;
    };
    toggleFilters: (payload: any) => {
        type: any;
        payload: any;
    };
    changeFilter: (payload: any) => {
        type: any;
        payload: any;
    };
    toggleSort: (payload: any) => {
        type: any;
        payload: any;
    };
    changePage: (payload: any) => {
        type: any;
        payload: any;
    };
    changeRowsPerPage: (payload: any) => {
        type: any;
        payload: any;
    };
};
export declare const changeVisibleColumns: (state: BasicTableState, nextVisibleColumns?: BasicTableState["visibleColumns"]) => any;
export declare const reducer: BasicTableReducer;
declare const _default: {
    reducer: BasicTableReducer;
    actions: {
        changeColumns: (payload: any) => {
            type: any;
            payload: any;
        };
        toggleFilters: (payload: any) => {
            type: any;
            payload: any;
        };
        changeFilter: (payload: any) => {
            type: any;
            payload: any;
        };
        toggleSort: (payload: any) => {
            type: any;
            payload: any;
        };
        changePage: (payload: any) => {
            type: any;
            payload: any;
        };
        changeRowsPerPage: (payload: any) => {
            type: any;
            payload: any;
        };
    };
    ActionTypes: typeof ActionTypes;
    changeVisibleColumns: (state: BasicTableState, nextVisibleColumns?: BasicTableState["visibleColumns"]) => any;
};
export default _default;
