import type { ModalState, QueryPendingState, WixPatternsContainer } from '@wix/bex-core';
import { CollectionState, CustomField, FedopsReporter, Filter, FiltersMap, MultiCollectionSupport, ReportBI, TaskState, ValueBox } from '@wix/bex-core';
import { Column, FilterProps, PrivateView, TableColumn, ViewType } from '../model';
export { ViewType };
import { CustomColumnsProps } from '../components/CustomColumns';
import type { LiveRegionRefType, LiveRegionState, TableProps } from '@wix/design-system';
import type { AppliedFiltersTagListState } from '../components/AppliedFiltersTagList/AppliedFiltersTagListState';
import { ToolbarFeatureInitializer } from './toolbarFeatureInitializer';
import type { CollectionViewsState } from './CollectionViewsState';
import { ReactElement } from 'react';
import { ToolbarBIReporter } from './ToolbarBIReporter';
import { DragAndDropState } from '../components/DragAndDrop';
import { CollectionViewsDropdownProps } from '../components/CollectionViewsDropdown';
import { ActionCellProps } from '../components/ActionCell';
import { ActionCellAPI } from './ItemActionsState';
import { CustomColumnsState } from './CustomColumnsState';
import { SidePanelsState } from './SidePanelsState';
import { CollectionToolbarFiltersState } from '../components/CollectionToolbarFilters/CollectionToolbarFiltersState';
import { MultiLevelSortingState } from './MultiLevelSortingState';
import { RectState } from './RectState';
import { BulkActionToolbarState } from './BulkActionToolbarState';
import type { AddApplyFiltersButton } from '../components/FiltersPanel/AddApplyFiltersButton';
import { TabsFilterState } from '../components/TabsFilter/TabsFilterState';
import { CollectionDataExtensionState } from '../components/DataExtension';
import { TagsCollectionState } from './TagsCollectionState';
import { AdditionalFeaturesAvailabilityBIParams, FeaturesAvailabilityBIParams } from './FeaturesAvailabilityBIParams';
import { ExtensionMenuItemsState } from './ExtensionMenuItemsState';
import { ToolbarState } from '../components/CollectionToolbars/ToolbarState';
import { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';
import { ColumnSizesState } from './ColumnSizesState';
export type Component<C> = () => C;
export interface ToolbarCollectionStateParamsInitParams {
    featuresInitializers: (ToolbarFeatureInitializer | undefined)[];
    hasMultiLevelSorting?: boolean;
    skipFilterListeners?: boolean;
}
export interface LayoutState {
    viewType: ViewType;
}
export interface ToolbarCollectionStateParams<T, F extends FiltersMap> {
    readonly container: WixPatternsContainer;
    readonly collection: CollectionState<T, F>;
    readonly componentType: string;
    readonly reportBi?: ReportBI;
}
export declare class ToolbarCollectionState<T, F extends FiltersMap = FiltersMap> {
    readonly collection: CollectionState<T, F>;
    readonly selectedColumns: import("@wix/bex-core").ArrayFilterState<{
        id: string;
        isSelected: boolean;
    }>;
    readonly initTask: TaskState<unknown>;
    readonly fedopsReporter: FedopsReporter<T, F>;
    readonly dataCapsule: import("@wix/data-capsule").IDataCapsule<import("@wix/data-capsule").BaseStorageOptions & Record<string, any>>;
    readonly toolbar: ToolbarState<T, F>;
    readonly container: WixPatternsContainer;
    readonly namespace: string;
    readonly reportBi: ReportBI;
    readonly featuredComponents: {
        moreFiltersButton: ValueBox<Component<{}> | null>;
        appliedFiltersTagList: ValueBox<{
            component: Component<{}>;
            state: AppliedFiltersTagListState<T, F>;
        } | null>;
        exportButton: ValueBox<ReactElement<any, string | import("react").JSXElementConstructor<any>> | null>;
        exportModal: ValueBox<ReactElement<{}, string | import("react").JSXElementConstructor<any>> | null>;
        importButton: ValueBox<ReactElement<any, string | import("react").JSXElementConstructor<any>> | null>;
        importModal: ValueBox<ReactElement<{}, string | import("react").JSXElementConstructor<any>> | null>;
    };
    readonly toolbarRect: RectState;
    readonly itemsContentRect: RectState;
    readonly panels: SidePanelsState;
    readonly bulk: BulkActionToolbarState<T, F>;
    readonly multi: MultiCollectionSupport<F>;
    readonly componentType: string;
    _syncedProps?: {
        useResponsiveLayout?: boolean;
    };
    _userColumns: Column[];
    _featureColumns: Column[];
    _extendedColumns: Column[];
    internalScroll: boolean | undefined;
    customColumnsState: CustomColumnsState<T, F> | null;
    customColumnsStateInitialized: boolean;
    columnSizesState: ColumnSizesState | null;
    multiLevelSorting: MultiLevelSortingState<T, F> | null;
    liveRegionRef: {
        current: null | LiveRegionRefType;
    };
    collectionDataExtension: CollectionDataExtensionState<T, F> | null;
    menuItemExtensions: Map<string, ExtensionMenuItemsState>;
    tagsCollectionState: TagsCollectionState<T, F> | null;
    toolbarFiltersState: CollectionToolbarFiltersState<T, F> | null;
    toolbarFiltersStateInitialized: boolean;
    _dnd: DragAndDropState<T, F> | null;
    toolbarBIReporter: ToolbarBIReporter<T, F>;
    filtersProps: FilterProps<any>[] | null;
    viewsProps: CollectionViewsDropdownProps<F> | null | undefined;
    dragAndDropCategories: (keyof F)[][] | null | undefined;
    customColumnsProps: CustomColumnsProps | null | undefined;
    selectionProps: ValueBox<{
        showSelection?: boolean | undefined;
    }>;
    featuresAvailability: FeaturesAvailabilityBIParams;
    additionalFeaturesAvailability: AdditionalFeaturesAvailabilityBIParams;
    actionCell: ValueBox<ActionCellProps | ((item: T, index: number, api: ActionCellAPI<T, F>) => ActionCellProps) | undefined>;
    contentPadding: number;
    contentPaddingPx: string;
    scrollElementRect: {
        height?: number | null | undefined;
        top?: number | null | undefined;
    };
    scrollTopBeforeUnmount: number | null;
    minimizedHeaderHeight: number;
    tabsFilterProps?: {
        filter: Filter<any>;
    };
    viewsState?: CollectionViewsState<T, F>;
    exportState?: ModalState;
    importState?: ModalState;
    pendingQuery?: QueryPendingState;
    AddApplyFiltersButton?: typeof AddApplyFiltersButton;
    tabs?: TabsFilterState<T, F>;
    layoutState?: LayoutState;
    _layoutColumnsCache: Partial<Record<ViewType, {
        id: string;
        isSelected: boolean;
    }[]>>;
    _cacheRestoredLayout?: ViewType;
    _skipNextLayoutCoordinator: boolean;
    _searchExpanded: boolean;
    forceRenderIndexes: number[] | undefined;
    constructor(params: ToolbarCollectionStateParams<T, F>);
    get containerRect(): {
        bottom: number;
        height: number;
        left: number;
        right: number;
        top: number;
        width: number;
    } | undefined;
    get containerTop(): number | undefined;
    /**
     * How much height left for the content inside the viewport
     */
    get itemsContentHeight(): number;
    get totalStickyContentHeight(): number | null;
    get sidePanel(): import("@wix/bex-core").SidePanelState;
    get sidePanelComponents(): import("mobx").ObservableMap<string, import("react").ComponentType<{}>>;
    get showInitialLoader(): boolean;
    get showEmptyState(): boolean;
    get errorStatus(): import("@wix/bex-core").TaskStatusError<unknown, unknown> | import("@wix/bex-core").QueryResultStatusError<import("@wix/bex-core").DataResultKeyed<unknown>, F> | undefined;
    get showErrorState(): boolean;
    get hasSubToolbarComponents(): boolean;
    get reorderModeState(): import("../components/DragAndDrop/ReorderModeState").ReorderModeState<T, F> | null | undefined;
    get shouldDisplayFiltersTags(): boolean;
    get hasToolbarTabs(): boolean;
    get isReorderModeToolbarVisible(): boolean | undefined;
    get isReorderModePending(): boolean | undefined;
    get columns(): Column[];
    /**
     * Whether to show field-type prefix icons across the collection UI.
     * Controlled by the `showFieldTypeIcons` prop on the collection component (Table, Grid, etc.).
     * @default false
     */
    showFieldTypeIcons: boolean;
    get selectedOrderedColumnsOrAll(): Column[];
    _commonDynamicBiParams(query?: import("@wix/bex-core").ComputedQueryFull<F>): {
        visibleColumnsOrder: string;
        numColumns: number;
        numFiltersActive: number;
        numFiltersInView?: number | undefined;
        isPredefined?: boolean | undefined;
        currentView?: string | undefined;
        currentTab: string;
        currentFilters?: string | undefined;
        currentSortOrder?: string | undefined;
        filteredListSize?: number | undefined;
        initialItems?: number | undefined;
        numSortedColumns?: number | undefined;
        csid?: string | undefined;
        componentType: string;
    };
    _numberFiltersInView(view: PrivateView<F>): number;
    getCurrentTabName(): string;
    getCollectionSnapshot: () => {
        [key: string]: string | number | undefined;
    };
    getPendingFilter<A>(filter: A): Filter<any> | A;
    init({ featuresInitializers, hasMultiLevelSorting, skipFilterListeners, }: ToolbarCollectionStateParamsInitParams): () => void;
    setFilterTagsPropsIfChanged(filtersProps: FilterProps<any>[] | null): void;
    _toStoredColumn: (column: Column) => {
        id: string;
        isSelected: boolean;
    };
    setNewColumns(tableColumns: TableColumn<T>[]): void;
    addFeatureColumn(featureColumn: TableColumn<T>): void;
    setNewExtendedColumns(fields?: CustomField[], { defaultHidden }?: {
        defaultHidden?: boolean;
    }): void;
    broadcast(params: LiveRegionState): void;
    setToolbarFiltersStateInitialized(value: boolean): void;
    updateColumnWidth(columnId: string, width: number): void;
    _initDefaultSortableColumn(hasMultiLevelSorting?: boolean): void;
    _adjustSelectedColumns: () => void;
    _flushColumnsToCache(layout: ViewType): void;
    _tryRestoreColumnsFromCache(layout: ViewType): boolean;
    _clearColumnsCache(): void;
    _adjustSortWithNewColumns(tableColumns: TableColumn<T>[]): void;
    closeSidePanel: () => void;
    openFiltersPanel(): void;
    retryErrorState: () => void;
    onSelectionStarted: () => void;
    _onSelectAllCheckboxClick(): void;
    get activeFiltersEntries(): [string, Filter<unknown>][];
    onSelectionChanged: Required<TableProps>['onSelectionChanged'];
    openCustomFieldModal: ({ customOrigin }?: {
        customOrigin?: string | undefined;
    }) => void | undefined;
    openManageTagsModal: () => void | undefined;
    onAddItemActionComplete: (items: T[]) => Promise<void>;
    _resetQueryAndAddItems: (items: T[]) => Promise<void>;
    getPageFeaturedActions(): MoreActionItemFactory[];
}
//# sourceMappingURL=ToolbarCollectionState.d.ts.map