interface BaseInput {
    label?: string;
    placeholder?: string;
}
interface TextInput extends BaseInput {
    type: "text";
}
interface MultilineInput extends BaseInput {
    type: "multiline";
}
interface PasswordInput extends BaseInput {
    type: "password";
}
interface CheckboxInput extends BaseInput {
    type: "checkbox";
}
interface RadioGroupInput extends BaseInput {
    type: "radio-group";
    options: string[];
}
interface SelectInput extends BaseInput {
    type: "select";
    options: string[];
}
export type FormInput = TextInput | MultilineInput | PasswordInput | CheckboxInput | RadioGroupInput | SelectInput;
interface FormRow {
    inputs: FormInput[];
}
type FormGroup = {
    rows: FormRow[];
    title?: string;
    description?: string;
} | {
    inputs: FormInput[];
    title?: string;
    description?: string;
};
export type FormConfiguration = {
    groups: FormGroup[];
} | FormGroup;
export interface NormalizedFormGroup {
    title?: string;
    description?: string;
    rows: Array<{
        inputs: FormInput[];
    }>;
}
export type NormalizedFormConfiguration = {
    groups: NormalizedFormGroup[];
};
export declare const FORM_DATA_KEY = "form";
export declare const FORM_COMPONENT_TYPES: readonly ["text", "multiline", "password", "checkbox", "select", "radio-group", "group", "row"];
export type FormComponent = (typeof FORM_COMPONENT_TYPES)[number];
export interface AITemplateDescription {
    id: string;
    name: string;
    description: string;
}
export declare const AITemplateMetadataVersion: {
    readonly Version1: "1";
    readonly Version2: "2";
};
export interface AITemplateMetadata {
    id: string;
    data: object;
    formTemplateId?: string;
    version: (typeof AITemplateMetadataVersion)[keyof typeof AITemplateMetadataVersion];
}
export {};
//# sourceMappingURL=types.d.ts.map