import { type ReactNode } from "react";
export type BaseNodeStatus = "idle" | "running" | "success" | "error" | "warning";
export interface BaseNodeProps {
    /** Pill label — the node TYPE/category (e.g. "HTTP", "WEBHOOK", "ACTION"). */
    kind: ReactNode;
    /** Optional small icon inside the pill, left of the kind label. */
    kindIcon?: ReactNode;
    /** Icon shown in the body bubble (32px circle). */
    icon?: ReactNode;
    /** Bold name shown in the body — this is the user-facing instance name. */
    title: ReactNode;
    /**
     * Optional chip rendered before the description text — used for
     * configuration values like HTTP method ("GET"), condition operator
     * ("=="), execution mode, etc. Inherits the accent colour.
     */
    chip?: ReactNode;
    /**
     * The body description / value — typically the most-relevant config
     * field (path, url, expression). Clamps to two lines.
     */
    description?: ReactNode;
    /**
     * Generic right-aligned chip slot. Renders inside the info row to the
     * right of the description (e.g. an `/v1/orders/:id` path chip next to
     * a `GET` method `chip`). Inherits the kind accent like `chip` does.
     */
    valueChip?: ReactNode;
    /** Per-kind accent — paints the pill background and the chip. */
    accent?: "blue" | "violet" | "amber" | "green" | "red" | "slate";
    /** Status dot in the top-right corner (config / runtime). */
    status?: BaseNodeStatus;
    /**
     * Delete button click — when set, the corner [×] button uses this. If
     * omitted, BaseNode auto-wires it through the FlowCanvas bridge so the
     * default behaviour is "this button deletes me". Pass `false` to hide.
     */
    onDelete?: (() => void) | false;
    /** Footer slot below the description (e.g. additional metadata). */
    footer?: ReactNode;
    className?: string;
    /** Handles + extras — positioned absolutely by the caller. */
    children?: ReactNode;
}
export declare function BaseNode({ kind, kindIcon, icon, title, chip, description, valueChip, accent, status, onDelete, footer, className, children, }: BaseNodeProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=BaseNode.d.ts.map