import { PerPageOptions } from '@patternfly/react-core';
import React, { Dispatch, SetStateAction } from 'react';
import { IPageAction } from '../PageActions/PageAction';
import { PageTableViewType } from './PageTableViewType';
import './PageToolbar.css';
import { IFilterState, IToolbarFilter } from './PageToolbarFilter';
import { PageTableSortOption } from './PageToolbarSort';
export type PageToolbarProps<T extends object> = {
    localStorageKey?: string;
    openColumnModal?: () => void;
    keyFn: (item: T) => string | number;
    itemCount?: number;
    toolbarActions?: IPageAction<T>[];
    toolbarFilters?: IToolbarFilter[];
    filterState?: IFilterState;
    setFilterState?: Dispatch<SetStateAction<IFilterState>>;
    clearAllFilters?: () => void;
    page?: number;
    perPage?: number;
    setPage?: (page: number) => void;
    setPerPage?: (perPage: number) => void;
    perPageOptions?: PerPageOptions[];
    isSelected?: (item: T) => boolean;
    selectedItems?: T[];
    selectItem?: (item: T) => void;
    unselectItem?: (item: T) => void;
    selectItems?: (items: T[]) => void;
    unselectAll?: () => void;
    onSelect?: (item: T) => void;
    showSelect?: boolean;
    sort?: string;
    setSort?: (sort: string) => void;
    sortDirection?: 'asc' | 'desc';
    setSortDirection?: (sortDirection: 'asc' | 'desc') => void;
    viewType?: PageTableViewType;
    setViewType?: (viewType: PageTableViewType) => void;
    disableTableView?: boolean;
    disableListView?: boolean;
    disableCardView?: boolean;
    disablePagination?: boolean;
    autoHidePagination?: boolean;
    sortOptions?: PageTableSortOption[];
    maxSelections?: number;
    toolbarContent?: React.ReactNode;
    limitFiltersToOneOrOperation?: boolean;
};
export declare function PageToolbar<T extends object>(props: PageToolbarProps<T>): import("react/jsx-runtime").JSX.Element;
