import { FiltersMap, Tags } from '@wix/bex-core';
import { TagsBulkAssignPopoverState, TagsBulkAssignPopoverStateParams } from './TagsBulkAssignPopoverState';
export interface BulkUpdateTagsParams {
    entityIds: string[];
    assignTags: Tags;
    unassignTags: Tags;
}
export interface TagsBulkAssignSyncStateParams<T, F extends FiltersMap> extends Pick<TagsBulkAssignPopoverStateParams<T, F>, 'bulkUpdateTags' | 'collectionState' | 'getTags'> {
    container: TagsBulkAssignPopoverState<T, F>['container'];
    optimisticActions: TagsBulkAssignPopoverState<T, F>['optimisticActions'];
    tagsBIReporter: TagsBulkAssignPopoverState<T, F>['tagsBIReporter'];
}
export declare const MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = 100;
export declare class TagsBulkAssignSyncState<T, F extends FiltersMap> {
    readonly collectionState: import("@wix/bex-core").CollectionState<T, F>;
    readonly optimisticActions: import("@wix/bex-core").CollectionOptimisticActions<T, F>;
    readonly container: import("@wix/bex-core").WixPatternsContainer;
    readonly tagsBIReporter: import("@wix/bex-core").TagsBIReporter;
    readonly bulkUpdateTags: (params: import("./TagsBulkAssignPopoverState").BulkUpdateTagsParams) => Promise<unknown>;
    readonly getTags: ((item: T) => Tags) | undefined;
    constructor(params: TagsBulkAssignSyncStateParams<T, F>);
    get canUseBulkSync(): boolean;
    applyChanges({ newAssignedTagIds, newUnassignedTagIds, searchValue, }: {
        newAssignedTagIds: string[];
        newUnassignedTagIds: string[];
        searchValue: string;
    }): Promise<void>;
    private _calculateUpdatedTagIds;
    private _calcOptimisticItems;
    private _reportApplyBi;
    private _reportUndoBi;
}
//# sourceMappingURL=TagsBulkAssignSyncState.d.ts.map