import { z } from "zod";
export declare const ProductOptionChoiceInputSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    nextGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, z.core.$strip>;
export declare const ProductOptionGroupInputSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
    label: z.ZodString;
    selectionMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        SINGLE: "SINGLE";
        MULTIPLE: "MULTIPLE";
    }>>>;
    minChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    maxChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    choices: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodString;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        nextGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const ProductConfiguratorStepInputSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    code: z.ZodString;
    label: z.ZodString;
    displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    minSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    maxSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    repeatCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    entryGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$strip>;
export declare const CreateProductConfiguratorSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    optionGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodString;
        label: z.ZodString;
        selectionMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            SINGLE: "SINGLE";
            MULTIPLE: "MULTIPLE";
        }>>>;
        minChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        maxChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        choices: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodOptional<z.ZodString>;
            code: z.ZodString;
            label: z.ZodString;
            description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
            displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
            isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            nextGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>>;
    steps: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodString;
        label: z.ZodString;
        displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        minSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        maxSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        repeatCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        entryGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const UpdateProductConfiguratorSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    active: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
    optionGroups: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodString;
        label: z.ZodString;
        selectionMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            SINGLE: "SINGLE";
            MULTIPLE: "MULTIPLE";
        }>>>;
        minChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        maxChoices: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        choices: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodOptional<z.ZodString>;
            code: z.ZodString;
            label: z.ZodString;
            description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
            displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
            isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
            nextGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>>>;
    steps: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        code: z.ZodString;
        label: z.ZodString;
        displayOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        minSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        maxSelections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        repeatCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        entryGroupId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export type ProductOptionChoiceInput = z.infer<typeof ProductOptionChoiceInputSchema>;
export type ProductOptionGroupInput = z.infer<typeof ProductOptionGroupInputSchema>;
export type ProductConfiguratorStepInput = z.infer<typeof ProductConfiguratorStepInputSchema>;
export type CreateProductConfiguratorInput = z.infer<typeof CreateProductConfiguratorSchema>;
export type UpdateProductConfiguratorInput = z.infer<typeof UpdateProductConfiguratorSchema>;
