import { Condition } from './Condition'; export interface GBaseStep { id: string; idSection: string; stepPath: string[]; type: string; editable?: boolean; partial?: boolean; clientInfoType?: string; dependencies?: string[]; condition?: Condition; } export interface GTitle extends GBaseStep { title: string; description: string | null; } export interface GCheckBox extends GBaseStep { label: string; description: string | null; required: boolean; isList?: boolean; size: 1 | 2 | 3 | 4; } export interface GSeparator extends GBaseStep { transparent: boolean; } export interface GTextArea extends GBaseStep { label: string; description: string | null; required: boolean; hasTextEditor: boolean; } export interface GTextInput extends GBaseStep { label: string; description: string | null; validation?: { message: string; value: string; type: 'EMAIL' | 'PHONE' | 'OTHER'; }; required: boolean; showIcon?: boolean; size: 1 | 2 | 3 | 4; maxLength?: number; defaultValue?: string; } export interface GDatePicker extends GBaseStep { label: string; description: string | null; pickTime: boolean; required: boolean; size: 1 | 2 | 3 | 4; } export interface GTimePicker extends GBaseStep { label: string; description: string | null; required: boolean; size: 1 | 2 | 3 | 4; pickDays: boolean; minDays?: number; maxDays?: number; pickHours: boolean; minHours?: number; maxHours?: number; pickMinutes: boolean; minMinutes?: number; maxMinutes?: number; /** Undefined if user can choose */ working?: boolean; } export interface GAgentPicker extends GBaseStep { label: string; description: string | null; required: boolean; multiple: boolean; size: 1 | 2 | 3 | 4; } export interface GSmartSelect extends GBaseStep { label: string; description: string | null; showIcon: boolean; required: boolean; searchable: boolean; size: 1 | 2 | 3 | 4; }