/**
* Renders children and returns the soup as a hook
*
* This is usually used in "tscircuit entrypoints" like ,
* or <3dViewer /> to convert their children into circuit json (soup)
*/
declare const useChildrenSoup: (children: React.ReactElement | React.ReactElement[]) => {
loading: boolean;
soup: ({
type: "source_trace";
source_trace_id: string;
connected_source_port_ids: string[];
connected_source_net_ids: string[];
} | {
type: "source_port";
source_component_id: string;
name: string;
source_port_id: string;
pin_number?: number | undefined;
port_hints?: string[] | undefined;
} | {
type: "source_component";
ftype: "simple_resistor";
source_component_id: string;
name: string;
resistance: number;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_capacitor";
source_component_id: string;
name: string;
capacitance: number;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_diode";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_ground";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_bug";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "led";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
voltage: number;
type: "source_component";
ftype: "simple_power_source";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "led";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_net";
name: string;
source_net_id: string;
member_source_group_ids: string[];
is_power?: boolean | undefined;
is_ground?: boolean | undefined;
is_digital_signal?: boolean | undefined;
is_analog_signal?: boolean | undefined;
} | {
type: "source_group";
source_group_id: string;
name?: string | undefined;
} | {
type: "source_component";
ftype: "simple_bug";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_capacitor";
source_component_id: string;
name: string;
capacitance: number;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_diode";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "source_component";
ftype: "simple_resistor";
source_component_id: string;
name: string;
resistance: number;
supplier_part_numbers?: Partial> | undefined;
} | {
voltage: number;
type: "source_component";
ftype: "simple_power_source";
source_component_id: string;
name: string;
supplier_part_numbers?: Partial> | undefined;
} | {
type: "pcb_component";
width: number;
height: number;
source_component_id: string;
rotation: number;
center: {
x: number;
y: number;
};
pcb_component_id: string;
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
} | {
x: number;
y: number;
type: "pcb_hole";
hole_shape: "round" | "square";
hole_diameter: number;
} | {
x: number;
y: number;
type: "pcb_hole";
hole_shape: "oval";
hole_width: number;
hole_height: number;
} | {
x: number;
y: number;
type: "pcb_plated_hole";
hole_diameter: number;
outer_diameter: number;
layers: ("top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6")[];
port_hints?: string[] | undefined;
pcb_component_id?: string | undefined;
pcb_port_id?: string | undefined;
} | {
x: number;
y: number;
type: "pcb_port";
source_port_id: string;
pcb_component_id: string;
layers: ("top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6")[];
pcb_port_id: string;
} | {
x: number;
y: number;
type: "pcb_text";
width: number;
height: number;
text: string;
align: "bottom-left";
lines: number;
} | {
type: "pcb_trace";
pcb_trace_id: string;
route: ({
x: number;
y: number;
width: number;
layer: string;
route_type: "wire";
start_pcb_port_id?: string | undefined;
end_pcb_port_id?: string | undefined;
} | {
x: number;
y: number;
to_layer: string;
route_type: "via";
from_layer: string;
})[];
source_trace_id?: string | undefined;
pcb_component_id?: string | undefined;
} | {
x: number;
y: number;
type: "pcb_via";
hole_diameter: number;
outer_diameter: number;
layers: ("top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6")[];
to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
from_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
} | {
x: number;
y: number;
type: "pcb_smtpad";
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
pcb_smtpad_id: string;
shape: "circle";
radius: number;
port_hints?: string[] | undefined;
pcb_component_id?: string | undefined;
pcb_port_id?: string | undefined;
} | {
x: number;
y: number;
type: "pcb_smtpad";
width: number;
height: number;
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
pcb_smtpad_id: string;
shape: "rect";
port_hints?: string[] | undefined;
pcb_component_id?: string | undefined;
pcb_port_id?: string | undefined;
} | {
type: "pcb_board";
width: number;
height: number;
center: {
x: number;
y: number;
};
} | {
type: "pcb_trace_hint";
pcb_component_id: string;
pcb_port_id: string;
route: {
x: number;
y: number;
via?: boolean | undefined;
to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
}[];
pcb_trace_hint_id: string;
} | {
type: "pcb_silkscreen_line";
x1: number;
x2: number;
y1: number;
y2: number;
pcb_component_id: string;
layer: "top" | "bottom";
pcb_silkscreen_line_id: string;
stroke_width: number;
} | {
type: "pcb_silkscreen_path";
pcb_component_id: string;
layer: "top" | "bottom";
route: {
x: number;
y: number;
}[];
stroke_width: number;
pcb_silkscreen_path_id: string;
} | {
type: "pcb_silkscreen_text";
text: string;
pcb_component_id: string;
layer: "top" | "bottom";
font: "tscircuit2024";
font_size: number;
anchor_position: {
x: number;
y: number;
};
anchor_alignment: "center" | "top_left" | "top_right" | "bottom_left" | "bottom_right";
} | {
type: "pcb_silkscreen_rect";
width: number;
height: number;
center: {
x: number;
y: number;
};
pcb_component_id: string;
layer: "top" | "bottom";
pcb_silkscreen_rect_id: string;
} | {
type: "pcb_silkscreen_circle";
center: {
x: number;
y: number;
};
pcb_component_id: string;
layer: "top" | "bottom";
radius: number;
pcb_silkscreen_circle_id: string;
} | {
message: string;
type: "pcb_error";
source_trace_id: string;
error_type: "pcb_trace_error";
pcb_trace_id: string;
pcb_error_id: string;
pcb_component_ids: string[];
pcb_port_ids: string[];
} | {
message: string;
type: "pcb_error";
error_type: "pcb_placement_error";
pcb_error_id: string;
} | {
message: string;
type: "pcb_error";
error_type: "pcb_port_not_matched_error";
pcb_error_id: string;
pcb_component_ids: string[];
} | {
type: "pcb_fabrication_note_path";
pcb_component_id: string;
layer: "top" | "bottom";
route: {
x: number;
y: number;
}[];
stroke_width: number;
fabrication_note_path_id: string;
} | {
type: "pcb_fabrication_note_text";
text: string;
pcb_component_id: string;
layer: "top" | "bottom";
font: "tscircuit2024";
font_size: number;
anchor_position: {
x: number;
y: number;
};
anchor_alignment: "center" | "top_left" | "top_right" | "bottom_left" | "bottom_right";
} | {
x: number;
y: number;
type: "schematic_box";
width: number;
height: number;
schematic_component_id: string;
} | {
anchor: "top" | "bottom" | "center" | "left" | "right";
type: "schematic_text";
schematic_component_id: string;
rotation: number;
schematic_text_id: string;
text: string;
position: {
x: number;
y: number;
};
} | {
type: "schematic_line";
schematic_component_id: string;
x1: number;
x2: number;
y1: number;
y2: number;
} | {
type: "schematic_component";
source_component_id: string;
schematic_component_id: string;
rotation: number;
size: {
width: number;
height: number;
};
center: {
x: number;
y: number;
};
pin_spacing?: number | undefined;
box_width?: number | undefined;
port_arrangement?: {
left_size: number;
right_size: number;
top_size?: number | undefined;
bottom_size?: number | undefined;
} | {
left_side?: {
pins: number[];
direction?: "top-to-bottom" | "bottom-to-top" | undefined;
} | undefined;
right_side?: {
pins: number[];
direction?: "top-to-bottom" | "bottom-to-top" | undefined;
} | undefined;
top_side?: {
pins: number[];
direction?: "left-to-right" | "right-to-left" | undefined;
} | undefined;
bottom_side?: {
pins: number[];
direction?: "left-to-right" | "right-to-left" | undefined;
} | undefined;
} | undefined;
port_labels?: Record | undefined;
} | {
type: "schematic_port";
source_port_id: string;
center: {
x: number;
y: number;
};
schematic_port_id: string;
schematic_component_id?: string | undefined;
facing_direction?: "left" | "right" | "up" | "down" | undefined;
} | {
type: "schematic_trace";
source_trace_id: string;
schematic_trace_id: string;
edges: {
from: {
x: number;
y: number;
};
to: {
x: number;
y: number;
};
from_schematic_port_id?: string | undefined;
to_schematic_port_id?: string | undefined;
}[];
} | {
type: "schematic_path";
schematic_component_id: string;
points: {
x: number;
y: number;
}[];
fill_color?: "red" | "blue" | undefined;
is_filled?: boolean | undefined;
} | {
message: string;
type: "schematic_error";
schematic_error_id: string;
error_type: "schematic_port_not_found";
} | {
type: "schematic_net_label";
source_net_id: string;
center: {
x: number;
y: number;
};
text: string;
anchor_side: "top" | "bottom" | "left" | "right";
})[] | null;
error: Error | null;
};
export { useChildrenSoup };