import { CollectionState, FiltersMap, SelectState, TransitionState, WixPatternsContainer } from '@wix/bex-core';
import { Column } from '../model';
import { CustomColumnsActionName } from './CustomColumnsState';
import type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';
import type { CollectionDataExtensionState } from '../components/DataExtension';
export interface CustomColumnsPanelStateBaseParams {
    container: WixPatternsContainer;
    queryName: string;
}
export declare abstract class CustomColumnsPanelStateBase<T = unknown, F extends FiltersMap = FiltersMap> {
    readonly container: WixPatternsContainer;
    readonly columnsCollection: CollectionState<Column, FiltersMap>;
    readonly select: SelectState<{
        id: string;
    }>;
    searchValue: string;
    onColumnClick?: (column: Column, checked: boolean) => unknown;
    constructor(params: CustomColumnsPanelStateBaseParams);
    protected initBaseObservables(): void;
    abstract get orderedColumns(): Column[];
    abstract get showFieldTypeIcons(): boolean;
    abstract get collectionDataExtension(): CollectionDataExtensionState<T, F> | null | undefined;
    abstract get sidePanelTransition(): TransitionState<string> | undefined;
    abstract get dragAndDrop(): CustomColumnsDragAndDropState<T, F> | undefined;
    abstract customizeColumnsInSidePanelBi(params: {
        actionName: CustomColumnsActionName;
    }): void;
    abstract onClose(): void;
    abstract init(): () => void;
    get filteredColumns(): Column[];
    setSearchValue: (value: string) => void;
    onColumnCheckboxToggle: (column: Column) => void;
}
//# sourceMappingURL=CustomColumnsPanelStateBase.d.ts.map