import React from 'react';
import { StateCreator } from 'zustand';
import { ContextMenuItem, IContextMenuPosition } from '../types/context-menu-types';
import { RootStateType } from '../store';
/**
 * État du menu contextuel.
 */
export interface ContextMenuState {
    isVisible: boolean;
    position: IContextMenuPosition;
    items: ContextMenuItem[];
    errors: string[];
    targetId?: string;
    metadata?: Record<string, any>;
    menuClassName?: string;
    customContextMenuContent?: React.ReactNode;
    menuType?: 'default' | 'switchType' | 'custom';
}
/**
 * Actions du menu contextuel.
 */
export interface ContextMenuActions {
    openContextMenu: (payload: {
        position: IContextMenuPosition;
        items: ContextMenuItem[] | React.ReactNode;
        targetId?: string;
        metadata?: Record<string, any>;
    }) => void;
    openCustomContextMenu: (payload: {
        position: IContextMenuPosition;
        targetId?: string;
        metadata?: Record<string, any>;
        component: React.ReactNode;
    }) => void;
    closeContextMenu: () => void;
    updateContextMenuPosition: (position: IContextMenuPosition) => void;
    updateContextMenuItems: (items: ContextMenuItem[]) => void;
    clearErrors: () => void;
}
export type ContextMenuSlice = {
    contextMenu: ContextMenuState & ContextMenuActions;
};
export declare const initialState: ContextMenuState;
export declare const createContextMenuSlice: StateCreator<RootStateType, // le type global du store
[
], [
], ContextMenuSlice>;
