/// <reference types="react" />
import { CollectionOptimisticActions, FiltersMap } from '@wix/bex-core';
import type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';
import { CollectionDragAndDropState } from '../components/DragAndDrop';
import { Column } from '../model';
import { RectState } from './RectState';
import { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';
export interface DragAndDropColumnsDataSource {
    readonly columns: Column[];
    readonly selectedColumns: {
        readonly value: {
            id: string;
            isSelected?: boolean;
        }[];
        refresh(value: {
            id: string;
            isSelected?: boolean;
        }[]): void;
    };
}
export interface CustomColumnsDragAndDropStateParams<T, F extends FiltersMap> {
    readonly customColumns: CustomColumnsPanelStateBase<T, F>;
    readonly dataSource: DragAndDropColumnsDataSource;
    readonly components: typeof CustomColumnsDragAndDrop;
    readonly modalsContainerRef: {
        current: HTMLElement | null | undefined;
    };
}
export declare class CustomColumnsDragAndDropState<T, F extends FiltersMap> {
    readonly container: import("@wix/bex-core").WixPatternsContainer;
    readonly customColumns: CustomColumnsPanelStateBase<T, F>;
    readonly dataSource: DragAndDropColumnsDataSource;
    readonly columnsActions: CollectionOptimisticActions<any, FiltersMap>;
    readonly components: {
        CustomColumnsDragAndDropState: typeof CustomColumnsDragAndDropState;
        ListDragAndDropContext: (<T_1, F_1 extends FiltersMap>(props: import("../components/ListDragAndDrop/ListDragAndDropContext").ListDragAndDropContextProps<T_1, F_1>) => import("react").JSX.Element) & {
            displayName: string;
        };
        DraggableListItem: (<T_2, F_2 extends FiltersMap>(props: import("../components/DragAndDrop").DraggableCardProps<T_2, F_2>) => import("react").JSX.Element) & {
            displayName: string;
        };
        DraggableListItemOverlay: (<T_3, F_3 extends FiltersMap>(props: import("../components/DragAndDrop").DraggableCardOverlayProps<T_3, F_3>) => import("react").ReactPortal) & {
            displayName: string;
        };
    };
    get _dnd(): import("../components/DragAndDrop").DragAndDropState<Column, {}> | undefined;
    collectionDragAndDropState: CollectionDragAndDropState<Column, {}> | null;
    forceRenderIndexes: number[] | undefined;
    reportBi: () => void;
    readonly listRect: RectState;
    constructor(params: CustomColumnsDragAndDropStateParams<T, F>);
    get orderedColumnsByReorderDisabled(): {
        regular: Column[];
        reorderDisabled: Column[];
    };
    get orderedColumns(): Column[];
    get collection(): import("@wix/bex-core").CollectionState<Column, FiltersMap>;
    get containerRect(): {
        bottom: number;
        height: number;
        left: number;
        right: number;
        top: number;
        width: number;
    } | undefined;
    _onCustomColumnsReorder(columnId: string, overColumnId: string): void;
    init(): () => void;
}
//# sourceMappingURL=CustomColumnsDragAndDropState.d.ts.map