import type { ProductOptionSelectionMode } from "../enums.js";
export interface ProductConfiguratorProductUsageDto {
    productId: string;
    productName: string;
    productPrice: number;
    active: boolean;
    customizationMode: "NONE" | "RECIPE" | "CONFIGURATOR";
}
export interface ProductOptionChoiceDto {
    id: string;
    groupId: string;
    code: string;
    label: string;
    description: string | null;
    priceDelta: number;
    displayOrder: number;
    isDefault: boolean;
    nextGroupId: string | null;
    active: boolean;
}
export interface ProductOptionGroupDto {
    id: string;
    configuratorId: string;
    code: string;
    label: string;
    selectionMode: ProductOptionSelectionMode;
    minChoices: number;
    maxChoices: number;
    displayOrder: number;
    active: boolean;
    choices: ProductOptionChoiceDto[];
}
export interface ProductConfiguratorStepDto {
    id: string;
    configuratorId: string;
    code: string;
    label: string;
    displayOrder: number;
    minSelections: number;
    maxSelections: number;
    repeatCount: number;
    entryGroupId: string | null;
    entryGroup: ProductOptionGroupDto | null;
}
export interface ProductConfiguratorSummaryDto {
    id: string;
    shopId: string;
    name: string;
    description: string | null;
    active: boolean;
    productCount: number;
    createdAt: string;
    updatedAt: string;
}
export interface ProductConfiguratorDto extends ProductConfiguratorSummaryDto {
    optionGroups: ProductOptionGroupDto[];
    steps: ProductConfiguratorStepDto[];
    products: ProductConfiguratorProductUsageDto[];
}
