import { WixPatternsContainer, CollectionState, FiltersMap } from '@wix/bex-core';
import { DragAndDropParentState, DragAndDropState } from './DragAndDropState';
import { CollectionDragAndDropBI } from './CollectionDragAndDropBI';
import { DragAndDropCancel } from './DragAndDrop';
export type CollectionDragAndDropParentState<T, F extends FiltersMap> = DragAndDropParentState<T, F> & {
    collection: CollectionState<T, F>;
    getCollectionSnapshot?: () => {
        [key: string]: string | number | undefined;
    };
};
interface CollectionDragAndDropStateParams<T, F extends FiltersMap> {
    container: WixPatternsContainer;
    state: CollectionDragAndDropParentState<T, F>;
    a11yContainer: {
        current: HTMLElement | null | undefined;
    };
}
export declare class CollectionDragAndDropState<T, F extends FiltersMap> {
    dnd: DragAndDropState<T, F>;
    state: CollectionDragAndDropParentState<T, F>;
    bi: CollectionDragAndDropBI<T, F>;
    dragAndDropCancel?: DragAndDropCancel<T, F>;
    constructor(params: CollectionDragAndDropStateParams<T, F>);
    get collection(): CollectionState<T, F>;
    get optimisticActions(): import("@wix/bex-core").CollectionOptimisticActions<T, F> | undefined;
    init(): () => void;
    _onCancel: () => Promise<boolean>;
    _collectionMove(): void;
}
export {};
//# sourceMappingURL=CollectionDragAndDropState.d.ts.map