import { z } from 'zod';
import type { ArrayElement } from '../util.js';
export declare const DEFAULT_CONFIGURATION: ProjectConfiguration;
declare const schemaValueList: z.ZodObject<{
    useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
}, "strip", z.ZodTypeAny, {
    useGenerated: boolean;
    values: string[];
}, {
    useGenerated?: boolean | undefined;
    values?: string[] | undefined;
}>;
declare const schemaValueListTarget: z.ZodObject<z.objectUtil.extendShape<{
    useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
}, {
    useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}>, "strip", z.ZodTypeAny, {
    useGenerated: boolean;
    values: string[];
    useDefault: boolean;
}, {
    useGenerated?: boolean | undefined;
    values?: string[] | undefined;
    useDefault?: boolean | undefined;
}>;
declare const schemaWorker: z.ZodObject<{
    inputFiles: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    }>>;
    outputFiles: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    inputFiles?: {
        useGenerated: boolean;
        values: string[];
    } | undefined;
    outputFiles?: {
        useGenerated: boolean;
        values: string[];
    } | undefined;
}, {
    inputFiles?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    } | undefined;
    outputFiles?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    } | undefined;
}>;
declare const schemaWorkerTarget: z.ZodObject<{
    inputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, {
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }>, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    }>>;
    outputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, {
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }>, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    inputFiles?: {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    } | undefined;
    outputFiles?: {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    } | undefined;
}, {
    inputFiles?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    } | undefined;
    outputFiles?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    } | undefined;
}>;
declare const schemaYosysOptions: z.ZodObject<{
    optimize: z.ZodOptional<z.ZodBoolean>;
    topLevelModule: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    optimize?: boolean | undefined;
    topLevelModule?: string | undefined;
}, {
    optimize?: boolean | undefined;
    topLevelModule?: string | undefined;
}>;
declare const schemaYosys: z.ZodObject<{
    commands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        optimize: z.ZodOptional<z.ZodBoolean>;
        topLevelModule: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    }, {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    } | undefined;
    commands?: {
        useGenerated: boolean;
        values: string[];
    } | undefined;
}, {
    options?: {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    } | undefined;
    commands?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    } | undefined;
}>;
declare const schemaYosysTarget: z.ZodObject<{
    commands: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, {
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }>, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        optimize: z.ZodOptional<z.ZodBoolean>;
        topLevelModule: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    }, {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    } | undefined;
    commands?: {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    } | undefined;
}, {
    options?: {
        optimize?: boolean | undefined;
        topLevelModule?: string | undefined;
    } | undefined;
    commands?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    } | undefined;
}>;
declare const schemaNextpnrOptions: z.ZodObject<{
    placedSvg: z.ZodOptional<z.ZodBoolean>;
    routedSvg: z.ZodOptional<z.ZodBoolean>;
    routedJson: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    placedSvg?: boolean | undefined;
    routedSvg?: boolean | undefined;
    routedJson?: boolean | undefined;
}, {
    placedSvg?: boolean | undefined;
    routedSvg?: boolean | undefined;
    routedJson?: boolean | undefined;
}>;
declare const schemaNextpnr: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        placedSvg: z.ZodOptional<z.ZodBoolean>;
        routedSvg: z.ZodOptional<z.ZodBoolean>;
        routedJson: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    }, {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    } | undefined;
    arguments?: {
        useGenerated: boolean;
        values: string[];
    } | undefined;
}, {
    options?: {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    } | undefined;
    arguments?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    } | undefined;
}>;
declare const schemaNextpnrTarget: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, {
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }>, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        placedSvg: z.ZodOptional<z.ZodBoolean>;
        routedSvg: z.ZodOptional<z.ZodBoolean>;
        routedJson: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    }, {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    } | undefined;
    arguments?: {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    } | undefined;
}, {
    options?: {
        placedSvg?: boolean | undefined;
        routedSvg?: boolean | undefined;
        routedJson?: boolean | undefined;
    } | undefined;
    arguments?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    } | undefined;
}>;
declare const schemaIVerilogOptions: z.ZodObject<{
    testbenchFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    testbenchFile?: string | undefined;
}, {
    testbenchFile?: string | undefined;
}>;
declare const schemaIVerilog: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        testbenchFile: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        testbenchFile?: string | undefined;
    }, {
        testbenchFile?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        testbenchFile?: string | undefined;
    } | undefined;
    arguments?: {
        useGenerated: boolean;
        values: string[];
    } | undefined;
}, {
    options?: {
        testbenchFile?: string | undefined;
    } | undefined;
    arguments?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
    } | undefined;
}>;
declare const schemaIVerilogTarget: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
    }, {
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }>, "strip", z.ZodTypeAny, {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    }, {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    }>>;
    options: z.ZodOptional<z.ZodObject<{
        testbenchFile: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        testbenchFile?: string | undefined;
    }, {
        testbenchFile?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    options?: {
        testbenchFile?: string | undefined;
    } | undefined;
    arguments?: {
        useGenerated: boolean;
        values: string[];
        useDefault: boolean;
    } | undefined;
}, {
    options?: {
        testbenchFile?: string | undefined;
    } | undefined;
    arguments?: {
        useGenerated?: boolean | undefined;
        values?: string[] | undefined;
        useDefault?: boolean | undefined;
    } | undefined;
}>;
export declare const schemaProjectConfiguration: z.ZodObject<{
    defaults: z.ZodOptional<z.ZodObject<{
        yosys: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
        }, {
            commands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                optimize: z.ZodOptional<z.ZodBoolean>;
                topLevelModule: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            }, {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        }, {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        }>>;
        nextpnr: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
        }, {
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                placedSvg: z.ZodOptional<z.ZodBoolean>;
                routedSvg: z.ZodOptional<z.ZodBoolean>;
                routedJson: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            }, {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        }, {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        }>>;
        iverilog: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
        }, {
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                testbenchFile: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                testbenchFile?: string | undefined;
            }, {
                testbenchFile?: string | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        }, {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
    }, {
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
    }>>;
    targets: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        vendor: z.ZodString;
        family: z.ZodString;
        device: z.ZodString;
        package: z.ZodString;
        directory: z.ZodOptional<z.ZodString>;
        yosys: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
        }, {
            commands: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                optimize: z.ZodOptional<z.ZodBoolean>;
                topLevelModule: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            }, {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        }, {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        }>>;
        nextpnr: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
        }, {
            arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                placedSvg: z.ZodOptional<z.ZodBoolean>;
                routedSvg: z.ZodOptional<z.ZodBoolean>;
                routedJson: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            }, {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        }, {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        }>>;
        iverilog: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
            inputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            outputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
        }, {
            arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
            }, {
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }>, "strip", z.ZodTypeAny, {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            }, {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            }>>;
            options: z.ZodOptional<z.ZodObject<{
                testbenchFile: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                testbenchFile?: string | undefined;
            }, {
                testbenchFile?: string | undefined;
            }>>;
        }>, "strip", z.ZodTypeAny, {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        }, {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name: string;
        vendor: string;
        family: string;
        device: string;
        package: string;
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        directory?: string | undefined;
    }, {
        id: string;
        name: string;
        vendor: string;
        family: string;
        device: string;
        package: string;
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        directory?: string | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    targets: {
        id: string;
        name: string;
        vendor: string;
        family: string;
        device: string;
        package: string;
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
                useDefault: boolean;
            } | undefined;
        } | undefined;
        directory?: string | undefined;
    }[];
    defaults?: {
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            commands?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            outputFiles?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
            arguments?: {
                useGenerated: boolean;
                values: string[];
            } | undefined;
        } | undefined;
    } | undefined;
}, {
    targets: {
        id: string;
        name: string;
        vendor: string;
        family: string;
        device: string;
        package: string;
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
                useDefault?: boolean | undefined;
            } | undefined;
        } | undefined;
        directory?: string | undefined;
    }[];
    defaults?: {
        yosys?: {
            options?: {
                optimize?: boolean | undefined;
                topLevelModule?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            commands?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
        nextpnr?: {
            options?: {
                placedSvg?: boolean | undefined;
                routedSvg?: boolean | undefined;
                routedJson?: boolean | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
        iverilog?: {
            options?: {
                testbenchFile?: string | undefined;
            } | undefined;
            inputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            outputFiles?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
            arguments?: {
                useGenerated?: boolean | undefined;
                values?: string[] | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
}>;
export type ProjectConfiguration = z.infer<typeof schemaProjectConfiguration>;
export type TargetDefaultsConfiguration = NonNullable<ProjectConfiguration['defaults']>;
export type TargetConfiguration = ArrayElement<ProjectConfiguration['targets']>;
export type ValueListConfiguration = z.infer<typeof schemaValueList>;
export type ValueListConfigurationTarget = z.infer<typeof schemaValueListTarget>;
export type WorkerId = 'yosys' | 'nextpnr' | 'iverilog';
export type WorkerConfiguration = z.infer<typeof schemaWorker>;
export type WorkerTargetConfiguration = z.infer<typeof schemaWorkerTarget>;
export type YosysOptions = z.infer<typeof schemaYosysOptions>;
export type YosysConfiguration = z.infer<typeof schemaYosys>;
export type YosysTargetConfiguration = z.infer<typeof schemaYosysTarget>;
export type NextpnrOptions = z.infer<typeof schemaNextpnrOptions>;
export type NextpnrConfiguration = z.infer<typeof schemaNextpnr>;
export type NextpnrTargetConfiguration = z.infer<typeof schemaNextpnrTarget>;
export type IVerilogOptions = z.infer<typeof schemaIVerilogOptions>;
export type IVerilogConfiguration = z.infer<typeof schemaIVerilog>;
export type IVerilogTargetConfiguration = z.infer<typeof schemaIVerilogTarget>;
export type TargetOptionTypes = {
    yosys: YosysOptions;
    nextpnr: NextpnrOptions;
    iverilog: IVerilogOptions;
};
export interface WorkerStep {
    tool: string;
    arguments: string[];
}
export interface WorkerOptions<Step extends WorkerStep, Options> {
    inputFiles: string[];
    outputFiles: string[];
    target: TargetConfiguration;
    options: Options;
    steps: Step[];
}
export {};
