import { default as CxButton } from '../../../button/button.ts';
import { default as CxDropdown } from '../../../dropdown/dropdown.ts';
import { default as CxIcon } from '../../../icon/icon.ts';
import { default as CxIconButton } from '../../../icon-button/icon-button.ts';
import { default as CxInput } from '../../../input/input.ts';
import { default as CxMenu } from '../../../menu/menu.ts';
import { default as CxMenuItem } from '../../../menu-item/menu-item.ts';
import { default as CxPagination } from '../../../pagination/pagination.ts';
import { default as CxSpace } from '../../../space/space.ts';
import { default as CxTooltip } from '../../../tooltip/tooltip.ts';
import { default as CxTypography } from '../../../typography/typography.ts';
import { default as CortexElement } from '../../../../../../base/src/cortex-element.ts';
import { SavedSearchItem, TableDropdownFilterData } from '../../../../../../types/src/table';
import { CSSResultGroup } from 'lit';
import { default as CxTableDropdownFilter } from './table-dropdown-filter';
import { default as CxTableSavedSearchDropdown } from './table-saved-search-dropdown';

/**
 * @summary <cx-table-toolbar> is a component that displays a toolbar for a table.
 */
export default class CxTableToolbar extends CortexElement {
    static readonly styles: CSSResultGroup;
    private readonly localize;
    static readonly dependencies: {
        'cx-button': typeof CxButton;
        'cx-dropdown': typeof CxDropdown;
        'cx-icon': typeof CxIcon;
        'cx-icon-button': typeof CxIconButton;
        'cx-input': typeof CxInput;
        'cx-menu': typeof CxMenu;
        'cx-menu-item': typeof CxMenuItem;
        'cx-pagination': typeof CxPagination;
        'cx-space': typeof CxSpace;
        'cx-table-dropdown-filter': typeof CxTableDropdownFilter;
        'cx-table-saved-search-dropdown': typeof CxTableSavedSearchDropdown;
        'cx-tooltip': typeof CxTooltip;
        'cx-typography': typeof CxTypography;
    };
    private readonly form;
    private readonly searchInput;
    /**
     * The label of the table.
     */
    label: string;
    /**
     * Whether to display a search box
     */
    canSearch: boolean;
    /**
     * Whether to hide the advanced search button
     */
    noAdvancedSearch: boolean;
    /**
     * Whether to display a create new button
     */
    canAdd: boolean;
    /**
     * The label of the create new button
     */
    addLabel: string;
    /**
     * Whether to display a export CSV button
     */
    canExportCsv: boolean;
    /**
     * Whether to display a export XML button
     */
    canExportXml: boolean;
    /**
     * Whether to display a export custom button
     */
    canExportCustom: boolean;
    /**
     * The dropdown filters to display in the toolbar.
     */
    dropdownFilters: TableDropdownFilterData[];
    /**
     * Whether to display a save report button
     */
    canSaveReport: boolean;
    /**
     * The URL to load the saved searches from
     */
    savedSearchURL: string;
    /**
     * The items to display in the saved search dropdown if savedSearchURL is not provided
     */
    savedSearchItems: SavedSearchItem[];
    /**
     * The parameter name for the page size for the saved search dropdown
     */
    savedSearchPageSizeParam: string;
    /**
     * The page size for the saved search dropdown
     */
    savedSearchPageSize: number;
    /**
     * The parameter name for the page number for the saved search dropdown
     */
    savedSearchPageNumberParam: string;
    /**
     * Whether to display the saved search dropdown
     */
    showSavedSearch: boolean;
    searchValue: string;
    private handleSearchSubmit;
    private handleAdvancedSearchClick;
    private handleClearSearch;
    private handleAdd;
    private handleExportCsv;
    private handleExportXml;
    private handleExportCustom;
    private handleSaveReport;
    private renderSearch;
    private renderAddButton;
    private renderSavedSearchDropdown;
    private renderExportDropdown;
    private renderDropdownFilters;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-table-toolbar': CxTableToolbar;
    }
}
