/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
type DynamicFormFieldSchema = ShortTextField | LongTextField | NumberField | EmailField | DropdownField | ChoiceField | ChoicesField | YesNoField;
type ShortTextField = FieldBaseType & TextFieldCommon & {
    type: "short_text";
    [k: string]: unknown;
};
type LongTextField = FieldBaseType & TextFieldCommon & {
    type: "long_text";
    [k: string]: unknown;
};
type NumberField = FieldBaseType & TextFieldCommon & {
    type: "number";
    [k: string]: unknown;
};
type EmailField = FieldBaseType & TextFieldCommon & {
    type: "email";
    [k: string]: unknown;
};
type DropdownField = FieldBaseType & TextFieldCommon & OptionFieldCommon & {
    type: "dropdown";
    [k: string]: unknown;
};
type ChoiceField = FieldBaseType & OptionFieldCommon & OrientationFieldCommon & {
    type: "choice";
    [k: string]: unknown;
};
type ChoicesField = FieldBaseType & OptionFieldCommon & OrientationFieldCommon & {
    type: "choices";
    [k: string]: unknown;
};
type YesNoField = FieldBaseType & {
    type: "yes_no";
    [k: string]: unknown;
};
/**
 * JSON 스키마 for DynamicForm 컴포넌트
 */
interface DynamicFormSchema {
    /**
     * 폼 필드 정의 배열
     */
    fields: DynamicFormFieldSchema[];
    [k: string]: unknown;
}
interface FieldBaseType {
    name: string;
    type: string;
    label: string;
    description?: string;
    required?: boolean;
    validation?: ValidationRule;
    [k: string]: unknown;
}
interface ValidationRule {
    min?: number;
    max?: number;
    pattern?: string;
    message?: string;
    oneOf?: unknown[];
    [k: string]: unknown;
}
interface TextFieldCommon {
    placeholder?: string;
    [k: string]: unknown;
}
interface OptionFieldCommon {
    options: FieldOption[];
    [k: string]: unknown;
}
interface FieldOption {
    label: string;
    value: string | number;
    [k: string]: unknown;
}
interface OrientationFieldCommon {
    orientation?: "horizontal" | "vertical";
    [k: string]: unknown;
}

export type { ChoiceField, ChoicesField, DropdownField, DynamicFormFieldSchema, DynamicFormSchema, EmailField, FieldBaseType, FieldOption, LongTextField, NumberField, OptionFieldCommon, OrientationFieldCommon, ShortTextField, TextFieldCommon, ValidationRule, YesNoField };
