kicad-component-converter
Version:
Convert kicad_mod or kicad_sym file into Circuit JSON or tscircuit
888 lines (882 loc) • 30.8 kB
TypeScript
import { z } from 'zod';
import { AnyCircuitElement } from 'circuit-json';
type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
declare const kicad_mod_json_def: z.ZodObject<{
footprint_name: z.ZodString;
version: z.ZodOptional<z.ZodString>;
generator: z.ZodOptional<z.ZodString>;
generator_version: z.ZodOptional<z.ZodString>;
layer: z.ZodString;
descr: z.ZodDefault<z.ZodString>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
properties: z.ZodArray<z.ZodObject<{
key: z.ZodString;
val: z.ZodString;
attributes: z.ZodObject<{
at: z.ZodOptional<z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
size: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
layer: z.ZodOptional<z.ZodString>;
layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
roundrect_rratio: z.ZodOptional<z.ZodNumber>;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}, {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}>;
}, "strip", z.ZodTypeAny, {
key: string;
val: string;
attributes: {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
};
}, {
key: string;
val: string;
attributes: {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
};
}>, "many">;
fp_lines: z.ZodArray<z.ZodEffects<z.ZodObject<{
start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
stroke: z.ZodOptional<z.ZodObject<{
width: z.ZodNumber;
type: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: string;
width: number;
}, {
type: string;
width: number;
}>>;
width: z.ZodOptional<z.ZodNumber>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, {
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, MakeRequired<Omit<{
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">, {
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, "many">;
fp_rects: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
stroke: z.ZodOptional<z.ZodObject<{
width: z.ZodNumber;
type: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: string;
width: number;
}, {
type: string;
width: number;
}>>;
width: z.ZodOptional<z.ZodNumber>;
fill: z.ZodOptional<z.ZodString>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, {
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, MakeRequired<Omit<{
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">, {
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, "many">>;
fp_texts: z.ZodArray<z.ZodObject<{
fp_text_type: z.ZodLiteral<"user">;
text: z.ZodString;
at: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
effects: z.ZodObject<{
font: z.ZodOptional<z.ZodOptional<z.ZodObject<{
size: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
thickness: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
size: [number, number];
thickness?: number | undefined;
}, {
size: [number, number];
thickness?: number | undefined;
}>>>;
}, "strip", z.ZodTypeAny, {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
}, {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
}>;
}, "strip", z.ZodTypeAny, {
at: [number, number] | [number, number, number];
layer: string;
fp_text_type: "user";
text: string;
effects: {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
};
uuid?: string | undefined;
}, {
at: [number, number] | [number, number, number];
layer: string;
fp_text_type: "user";
text: string;
effects: {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
};
uuid?: string | undefined;
}>, "many">;
fp_arcs: z.ZodArray<z.ZodObject<{
start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
mid: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
stroke: z.ZodObject<{
width: z.ZodNumber;
type: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: string;
width: number;
}, {
type: string;
width: number;
}>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
start: [number, number];
mid: [number, number];
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
uuid?: string | undefined;
}, {
start: [number, number];
mid: [number, number];
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
uuid?: string | undefined;
}>, "many">;
fp_circles: z.ZodOptional<z.ZodArray<z.ZodObject<{
center: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
stroke: z.ZodObject<{
width: z.ZodNumber;
type: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: string;
width: number;
}, {
type: string;
width: number;
}>;
fill: z.ZodOptional<z.ZodString>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
center: [number, number];
fill?: string | undefined;
uuid?: string | undefined;
}, {
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
center: [number, number];
fill?: string | undefined;
uuid?: string | undefined;
}>, "many">>;
fp_polys: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
pts: z.ZodArray<z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
kind: z.ZodLiteral<"arc">;
start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
mid: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
}, "strip", z.ZodTypeAny, {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
}, {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
}>]>, "many">;
stroke: z.ZodOptional<z.ZodObject<{
width: z.ZodNumber;
type: z.ZodString;
}, "strip", z.ZodTypeAny, {
type: string;
width: number;
}, {
type: string;
width: number;
}>>;
width: z.ZodOptional<z.ZodNumber>;
layer: z.ZodString;
uuid: z.ZodOptional<z.ZodString>;
fill: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, {
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, MakeRequired<Omit<{
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">, {
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}>, "many">>;
pads: z.ZodArray<z.ZodObject<{
name: z.ZodString;
pad_type: z.ZodEnum<["thru_hole", "smd", "np_thru_hole", "connect"]>;
pad_shape: z.ZodEnum<["roundrect", "circle", "rect", "oval", "trapezoid", "custom"]>;
at: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
size: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
drill: z.ZodOptional<z.ZodPipeline<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodAny, "many">, z.ZodObject<{
oval: z.ZodDefault<z.ZodBoolean>;
width: z.ZodOptional<z.ZodNumber>;
height: z.ZodOptional<z.ZodNumber>;
offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
}, "strip", z.ZodTypeAny, {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>]>, any[] | {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>, z.ZodObject<{
oval: z.ZodDefault<z.ZodBoolean>;
width: z.ZodOptional<z.ZodNumber>;
height: z.ZodOptional<z.ZodNumber>;
offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
}, "strip", z.ZodTypeAny, {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>>>;
layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
roundrect_rratio: z.ZodOptional<z.ZodNumber>;
chamfer_ratio: z.ZodOptional<z.ZodNumber>;
solder_paste_margin: z.ZodOptional<z.ZodNumber>;
solder_paste_margin_ratio: z.ZodOptional<z.ZodNumber>;
clearance: z.ZodOptional<z.ZodNumber>;
zone_connection: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
thermal_width: z.ZodOptional<z.ZodNumber>;
thermal_gap: z.ZodOptional<z.ZodNumber>;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
at: [number, number] | [number, number, number];
size: [number, number];
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
drill?: {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
} | undefined;
chamfer_ratio?: number | undefined;
solder_paste_margin?: number | undefined;
solder_paste_margin_ratio?: number | undefined;
clearance?: number | undefined;
zone_connection?: 0 | 2 | 1 | undefined;
thermal_width?: number | undefined;
thermal_gap?: number | undefined;
}, {
at: [number, number] | [number, number, number];
size: [number, number];
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
drill?: number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
} | undefined;
chamfer_ratio?: number | undefined;
solder_paste_margin?: number | undefined;
solder_paste_margin_ratio?: number | undefined;
clearance?: number | undefined;
zone_connection?: 0 | 2 | 1 | undefined;
thermal_width?: number | undefined;
thermal_gap?: number | undefined;
}>, "many">;
holes: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
pad_type: z.ZodEnum<["thru_hole", "smd", "np_thru_hole", "connect"]>;
pad_shape: z.ZodEnum<["roundrect", "circle", "rect", "oval", "trapezoid", "custom"]>;
at: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
drill: z.ZodPipeline<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodAny, "many">, z.ZodObject<{
oval: z.ZodDefault<z.ZodBoolean>;
width: z.ZodOptional<z.ZodNumber>;
height: z.ZodOptional<z.ZodNumber>;
offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
}, "strip", z.ZodTypeAny, {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>]>, any[] | {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>, z.ZodObject<{
oval: z.ZodDefault<z.ZodBoolean>;
width: z.ZodOptional<z.ZodNumber>;
height: z.ZodOptional<z.ZodNumber>;
offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
}, "strip", z.ZodTypeAny, {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}, {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
}>>;
size: z.ZodUnion<[z.ZodEffects<z.ZodArray<z.ZodNumber, "many">, {
width: number;
height: number;
}, number[]>, z.ZodObject<{
width: z.ZodNumber;
height: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
width: number;
height: number;
}, {
width: number;
height: number;
}>]>;
layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
roundrect_rratio: z.ZodOptional<z.ZodNumber>;
uuid: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
at: [number, number] | [number, number, number];
size: {
width: number;
height: number;
} | {
width: number;
height: number;
};
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
drill: {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
};
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}, {
at: [number, number] | [number, number, number];
size: number[] | {
width: number;
height: number;
};
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
drill: number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
};
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
layer: string;
footprint_name: string;
descr: string;
properties: {
key: string;
val: string;
attributes: {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
};
}[];
fp_lines: MakeRequired<Omit<{
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">[];
fp_texts: {
at: [number, number] | [number, number, number];
layer: string;
fp_text_type: "user";
text: string;
effects: {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
};
uuid?: string | undefined;
}[];
fp_arcs: {
start: [number, number];
mid: [number, number];
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
uuid?: string | undefined;
}[];
pads: {
at: [number, number] | [number, number, number];
size: [number, number];
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
drill?: {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
} | undefined;
chamfer_ratio?: number | undefined;
solder_paste_margin?: number | undefined;
solder_paste_margin_ratio?: number | undefined;
clearance?: number | undefined;
zone_connection?: 0 | 2 | 1 | undefined;
thermal_width?: number | undefined;
thermal_gap?: number | undefined;
}[];
version?: string | undefined;
generator?: string | undefined;
generator_version?: string | undefined;
tags?: string[] | undefined;
fp_rects?: MakeRequired<Omit<{
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">[] | undefined;
fp_circles?: {
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
center: [number, number];
fill?: string | undefined;
uuid?: string | undefined;
}[] | undefined;
fp_polys?: MakeRequired<Omit<{
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}, "width">, "stroke">[] | undefined;
holes?: {
at: [number, number] | [number, number, number];
size: {
width: number;
height: number;
} | {
width: number;
height: number;
};
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
drill: {
oval: boolean;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
};
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}[] | undefined;
}, {
layer: string;
footprint_name: string;
properties: {
key: string;
val: string;
attributes: {
at?: [number, number] | [number, number, number] | undefined;
size?: [number, number] | undefined;
layer?: string | undefined;
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
};
}[];
fp_lines: {
start: [number, number];
end: [number, number];
layer: string;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}[];
fp_texts: {
at: [number, number] | [number, number, number];
layer: string;
fp_text_type: "user";
text: string;
effects: {
font?: {
size: [number, number];
thickness?: number | undefined;
} | undefined;
};
uuid?: string | undefined;
}[];
fp_arcs: {
start: [number, number];
mid: [number, number];
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
uuid?: string | undefined;
}[];
pads: {
at: [number, number] | [number, number, number];
size: [number, number];
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
drill?: number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
} | undefined;
chamfer_ratio?: number | undefined;
solder_paste_margin?: number | undefined;
solder_paste_margin_ratio?: number | undefined;
clearance?: number | undefined;
zone_connection?: 0 | 2 | 1 | undefined;
thermal_width?: number | undefined;
thermal_gap?: number | undefined;
}[];
version?: string | undefined;
generator?: string | undefined;
generator_version?: string | undefined;
descr?: string | undefined;
tags?: string[] | undefined;
fp_rects?: {
start: [number, number];
end: [number, number];
layer: string;
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}[] | undefined;
fp_circles?: {
end: [number, number];
layer: string;
stroke: {
type: string;
width: number;
};
center: [number, number];
fill?: string | undefined;
uuid?: string | undefined;
}[] | undefined;
fp_polys?: {
layer: string;
pts: ([number, number] | {
kind: "arc";
start: [number, number];
mid: [number, number];
end: [number, number];
})[];
fill?: string | undefined;
uuid?: string | undefined;
width?: number | undefined;
stroke?: {
type: string;
width: number;
} | undefined;
}[] | undefined;
holes?: {
at: [number, number] | [number, number, number];
size: number[] | {
width: number;
height: number;
};
name: string;
pad_type: "thru_hole" | "smd" | "np_thru_hole" | "connect";
pad_shape: "custom" | "oval" | "roundrect" | "circle" | "rect" | "trapezoid";
drill: number | any[] | {
oval?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
offset?: [number, number] | undefined;
};
layers?: string[] | undefined;
roundrect_rratio?: number | undefined;
uuid?: string | undefined;
}[] | undefined;
}>;
type KicadModJson = z.infer<typeof kicad_mod_json_def>;
declare const parseKicadModToKicadJson: (fileContent: string) => KicadModJson;
declare const parseKicadModToCircuitJson: (kicadMod: string) => Promise<AnyCircuitElement[]>;
declare const convertKicadJsonToTsCircuitSoup: (kicadJson: KicadModJson) => Promise<AnyCircuitElement[]>;
export { convertKicadJsonToTsCircuitSoup, parseKicadModToCircuitJson, parseKicadModToKicadJson };