import type { NodeBase, NodeProp } from "../TreeLib/TreeNode"; export interface NodePropGroup extends NodeProp { kind: "group"; name: string; expanded: boolean; } export interface Option { name: string; value: any; } export interface NodePropSelect extends NodeProp { kind: "select"; name: string; options: Option[]; getValue(): any; onValue(value: any): void; } export interface InputArgs { type: "text" | "password" | "email" | "number" | "color" | "checkbox" | "radio" | "range" | "time" | "date" | "month" | "week" | "url"; name?: string; min?: string | number; max?: string | number; step?: number; checked?: boolean; readonly?: boolean; } export interface NodePropInput extends NodeProp { kind: "input"; name: string; args: InputArgs; getValue(): any; onValue?(value: any): void; } export declare function newPropGroup(parent: NodeBase | null, name: string, expanded?: boolean, props?: NodeProp[]): NodePropGroup; export declare function newPropSelect(parent: NodeBase | null, name: string, options: Option[], getValue: () => any, onValue: (val: any) => void): NodePropSelect; export declare function newPropInput(parent: NodeBase | null, name: string, args: InputArgs, getValue: () => any, onValue?: (val: any) => void): NodePropInput;