import { ComponentData } from '@layoutbase/core';
import { EditorComponentIds } from './components';
import { ELEMENT_CATEGORY } from './constants';
export declare type ValueOf<T> = T[keyof T];
export declare enum DragType {
    block = "block",
    component = "component",
    snippet = "snippet"
}
export declare enum ComponentType {
    component = "component",
    shopify_product_component = "shopify_product_component",
    shopify_collection_component = "shopify_collection_component"
}
export declare type DragItemType = {
    type: DragType.block;
    title: string;
    componentId: EditorComponentIds;
    props: any;
    componentType: ComponentType;
} | {
    type: DragType.component;
    index: number;
    path: number[];
    componentType: ComponentType;
    componentId: EditorComponentIds;
} | {
    type: DragType.snippet;
    componentData: ComponentData;
    componentType: ComponentType;
    componentId: EditorComponentIds;
};
export declare type Element = {
    title: string;
    category: ELEMENT_CATEGORY | string;
    componentId: EditorComponentIds;
    defaultProps?: any;
    icon?: any;
    componentType: ComponentType;
    hidden?: boolean;
};
