import { z } from 'zod';
import type { ArrayElement } from '../util.js';
export declare const DEFAULT_TARGET: TargetConfiguration;
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>>>;
}, z.core.$strip>;
declare const schemaValueListTarget: z.ZodObject<{
    useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, z.core.$strip>;
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>>>;
    }, z.core.$strip>>;
    outputFiles: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaWorkerTarget: z.ZodObject<{
    inputFiles: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    outputFiles: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaYosysOptions: z.ZodObject<{
    optimize: z.ZodOptional<z.ZodBoolean>;
    topLevelModule: z.ZodOptional<z.ZodString>;
    synthArguments: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const schemaYosys: z.ZodObject<{
    synthPrepareCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
    synthCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
    rtlCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        optimize: z.ZodOptional<z.ZodBoolean>;
        topLevelModule: z.ZodOptional<z.ZodString>;
        synthArguments: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaYosysTarget: z.ZodObject<{
    synthPrepareCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    synthCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    rtlCommands: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        optimize: z.ZodOptional<z.ZodBoolean>;
        topLevelModule: z.ZodOptional<z.ZodString>;
        synthArguments: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaNextpnrOptions: z.ZodObject<{
    placedSvg: z.ZodOptional<z.ZodBoolean>;
    routedSvg: z.ZodOptional<z.ZodBoolean>;
    routedJson: z.ZodOptional<z.ZodBoolean>;
    reportJson: z.ZodOptional<z.ZodBoolean>;
    pinConfigFile: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
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>>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        placedSvg: z.ZodOptional<z.ZodBoolean>;
        routedSvg: z.ZodOptional<z.ZodBoolean>;
        routedJson: z.ZodOptional<z.ZodBoolean>;
        reportJson: z.ZodOptional<z.ZodBoolean>;
        pinConfigFile: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaNextpnrTarget: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        placedSvg: z.ZodOptional<z.ZodBoolean>;
        routedSvg: z.ZodOptional<z.ZodBoolean>;
        routedJson: z.ZodOptional<z.ZodBoolean>;
        reportJson: z.ZodOptional<z.ZodBoolean>;
        pinConfigFile: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaFlasherOptions: z.ZodObject<{
    board: z.ZodOptional<z.ZodString>;
    programToFlash: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
declare const schemaFlasher: z.ZodObject<{
    packerArguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
    flasherArguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        board: z.ZodOptional<z.ZodString>;
        programToFlash: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaFlasherTarget: z.ZodObject<{
    packerArguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    flasherArguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        board: z.ZodOptional<z.ZodString>;
        programToFlash: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaIVerilogOptions: z.ZodObject<{
    testbenchFile: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
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>>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        testbenchFile: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const schemaIVerilogTarget: z.ZodObject<{
    arguments: z.ZodOptional<z.ZodObject<{
        useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>;
    options: z.ZodOptional<z.ZodObject<{
        testbenchFile: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const schemaProjectConfiguration: z.ZodObject<{
    defaults: z.ZodOptional<z.ZodObject<{
        yosys: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            synthPrepareCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            synthCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            rtlCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                optimize: z.ZodOptional<z.ZodBoolean>;
                topLevelModule: z.ZodOptional<z.ZodString>;
                synthArguments: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        nextpnr: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                placedSvg: z.ZodOptional<z.ZodBoolean>;
                routedSvg: z.ZodOptional<z.ZodBoolean>;
                routedJson: z.ZodOptional<z.ZodBoolean>;
                reportJson: z.ZodOptional<z.ZodBoolean>;
                pinConfigFile: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        iverilog: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                testbenchFile: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        flasher: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            packerArguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            flasherArguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                board: z.ZodOptional<z.ZodString>;
                programToFlash: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    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<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            synthPrepareCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            synthCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            rtlCommands: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                optimize: z.ZodOptional<z.ZodBoolean>;
                topLevelModule: z.ZodOptional<z.ZodString>;
                synthArguments: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        nextpnr: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                placedSvg: z.ZodOptional<z.ZodBoolean>;
                routedSvg: z.ZodOptional<z.ZodBoolean>;
                routedJson: z.ZodOptional<z.ZodBoolean>;
                reportJson: z.ZodOptional<z.ZodBoolean>;
                pinConfigFile: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        iverilog: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            arguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                testbenchFile: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        flasher: z.ZodOptional<z.ZodObject<{
            inputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            outputFiles: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            packerArguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            flasherArguments: z.ZodOptional<z.ZodObject<{
                useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
                values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
                useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            }, z.core.$strip>>;
            options: z.ZodOptional<z.ZodObject<{
                board: z.ZodOptional<z.ZodString>;
                programToFlash: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    activeTargetId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
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' | 'flasher';
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 FlasherOptions = z.infer<typeof schemaFlasherOptions>;
export type FlasherConfiguration = z.infer<typeof schemaFlasher>;
export type FlasherTargetConfiguration = z.infer<typeof schemaFlasherTarget>;
export type TargetOptionTypes = {
    yosys: YosysOptions;
    nextpnr: NextpnrOptions;
    iverilog: IVerilogOptions;
    flasher: FlasherOptions;
};
export interface GeneratedFile {
    name: string;
    content: Uint8Array;
}
export interface WorkerStep {
    id: string;
    tool: string;
    arguments: string[];
    generatedInputFiles?: GeneratedFile[];
}
export interface WorkerOptions<Step extends WorkerStep, Options> {
    inputFiles: string[];
    outputFiles: string[];
    target: TargetConfiguration;
    options: Options;
    steps: Step[];
}
export {};
