declare class VariantBuilder {
    fields: {
        name: string;
        type: string;
    }[];
    constructor();
    withField(name: string, type: string): void;
}
declare type Variant = {
    name: string;
    fields: {
        name: string;
        type: string;
    }[];
};
declare class TypeBuilder {
    variants: Variant[];
    constructor();
    withVariant(name: string, variantConfig?: (variant: VariantBuilder) => void): void;
}
declare class FileBuilder {
    types: string[];
    constructor();
    withType(name: string, typeConfig: (type: TypeBuilder) => void): void;
}
export declare const generateType: (typeName: string, typeConfig: (type: TypeBuilder) => void) => string;
export declare const generateFile: (filePath: string, fileConfig: (b: FileBuilder) => void) => void;
export {};
