import type { Infer } from "@metamask/superstruct";
/**
 * The supported node types. This is based on SIP-7.
 *
 * @see https://metamask.github.io/SIPs/SIPS/sip-7
 */
export declare enum NodeType {
    Copyable = "copyable",
    Divider = "divider",
    Heading = "heading",
    Panel = "panel",
    Spinner = "spinner",
    Text = "text",
    Image = "image",
    Row = "row",
    Address = "address",
    Button = "button",
    Input = "input",
    Form = "form"
}
/**
 * @internal
 */
export declare const NodeStruct: import("@metamask/superstruct").Struct<{
    type: string;
}, {
    type: import("@metamask/superstruct").Struct<string, null>;
}>;
/**
 * The base node type. All nodes extend this type.
 *
 * @property type - The type of the node. See {@link NodeType} for the supported
 * node types.
 * @internal
 */
export type Node = Infer<typeof NodeStruct>;
/**
 * @internal
 */
export declare const LiteralStruct: import("@metamask/superstruct").Struct<{
    value: unknown;
    type: string;
}, {
    value: import("@metamask/superstruct").Struct<unknown, null>;
    type: import("@metamask/superstruct").Struct<string, null>;
}>;
/**
 * A node with a value. This is used for nodes that render a value, such as
 * {@link Text}.
 *
 * @property type - The type of the node.
 * @property value - The value of the node. The type of the value depends on the
 * node type.
 * @internal
 */
export type Literal = Infer<typeof LiteralStruct>;
//# sourceMappingURL=nodes.d.cts.map