import { z } from "zod";
export declare const ProductConfigurationPathNodeSchema: z.ZodObject<{
    groupId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    groupCode: z.ZodString;
    groupLabel: z.ZodString;
    choiceId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    choiceCode: z.ZodString;
    choiceLabel: z.ZodString;
    priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, z.core.$strip>;
export declare const ProductConfigurationEntrySchema: z.ZodObject<{
    index: z.ZodNumber;
    label: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    path: z.ZodArray<z.ZodObject<{
        groupId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        groupCode: z.ZodString;
        groupLabel: z.ZodString;
        choiceId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        choiceCode: z.ZodString;
        choiceLabel: z.ZodString;
        priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    }, z.core.$strip>>;
    unitPriceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
}, z.core.$strip>;
export declare const ProductConfigurationStepSnapshotSchema: z.ZodObject<{
    stepId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
    stepCode: z.ZodString;
    stepLabel: z.ZodString;
    repeatCount: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
    entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
        index: z.ZodNumber;
        label: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        path: z.ZodArray<z.ZodObject<{
            groupId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            groupCode: z.ZodString;
            groupLabel: z.ZodString;
            choiceId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            choiceCode: z.ZodString;
            choiceLabel: z.ZodString;
            priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        }, z.core.$strip>>;
        unitPriceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const ProductConfigurationSnapshotSchema: z.ZodObject<{
    configuratorId: z.ZodString;
    configuratorName: z.ZodString;
    version: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
    totalUnitPriceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    steps: z.ZodArray<z.ZodObject<{
        stepId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
        stepCode: z.ZodString;
        stepLabel: z.ZodString;
        repeatCount: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
        entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
            index: z.ZodNumber;
            label: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            path: z.ZodArray<z.ZodObject<{
                groupId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
                groupCode: z.ZodString;
                groupLabel: z.ZodString;
                choiceId: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
                choiceCode: z.ZodString;
                choiceLabel: z.ZodString;
                priceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
            }, z.core.$strip>>;
            unitPriceDelta: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type ProductConfigurationPathNodeInput = z.infer<typeof ProductConfigurationPathNodeSchema>;
export type ProductConfigurationEntryInput = z.infer<typeof ProductConfigurationEntrySchema>;
export type ProductConfigurationStepSnapshotInput = z.infer<typeof ProductConfigurationStepSnapshotSchema>;
export type ProductConfigurationSnapshotInput = z.infer<typeof ProductConfigurationSnapshotSchema>;
