import React from "react";
import type { EventEmit, EventPayloadValue } from "@almadar/core";
export type CanvasItemStatus = 'empty' | 'seated' | 'ordered' | 'awaiting-bill' | 'cleaning';
export type CanvasItemShape = 'round' | 'rectangle' | 'square';
export interface CanvasItem {
    id: string;
    label: string;
    x: number;
    y: number;
    shape?: CanvasItemShape;
    capacity: number;
    status?: CanvasItemStatus;
    partySize?: number;
    serverName?: string;
}
export interface PositionedCanvasProps {
    /**
     * Items to render. Accepts either a typed array (direct consumers) or the
     * runtime payload shape from a render-ui binding (`@payload.data`). The
     * molecule narrows non-array values to `[]` and validates element shape at
     * render time via the `id` / `x` / `y` guards.
     */
    items: readonly CanvasItem[] | EventPayloadValue;
    width?: number;
    height?: number;
    selectedId?: string | null;
    editable?: boolean;
    onSelect?: (id: string | null) => void;
    onMove?: (id: string, x: number, y: number) => void;
    selectEvent?: EventEmit<{
        id: string | null;
    }>;
    moveEvent?: EventEmit<{
        id: string;
        x: number;
        y: number;
    }>;
    className?: string;
}
export declare const PositionedCanvas: React.FC<PositionedCanvasProps>;
