import { ISchedule } from "../Schedules/Schedules"; export declare enum FormItemType { SHORT_ANSWER = 1, PARAGRAPH = 2, SEVERAL_OPTIONS = 3, CHECKBOXES = 4, DROPDOWN = 5, LINEARSCALE = 6, EMAIL = 7, DATE = 8, TIME = 9 } export declare enum FormItemLinearScaleStyle { CIRCLE = 1, STAR = 2 } export declare class FormItemLinearScale { from: number; fromTitle: string | ''; to: number; toTitle: string | ''; style: FormItemLinearScaleStyle; } export declare class FormItem { id: string | ''; order: number; question: string | ''; type: FormItemType; severalOptionList: FormItemResponseItem[]; checkboxList: FormItemResponseItem[]; dropdownList: FormItemResponseItem[]; linearScale: FormItemLinearScale; required: boolean; } export declare class FormItemResponseItem { id: string | ''; value: string | ''; } export declare class FormConfig { token?: string; reassign?: boolean; reassignTime?: number; reassignGroupId?: string; scheduleId?: string | null; schedule?: ISchedule | null; reOpenTime?: number; title?: string | ''; subTitle?: string | ''; color?: string | ''; successMessage?: string | ''; errorMessage?: string | ''; items?: FormItem[]; schema?: FormSchema; } export interface FormSchema { title: string; description: string; status: "draft" | "published"; draftRevision: number; publishedRevision: number; sections: FormSection[]; theme?: FormTheme; confirmation?: FormConfirmation; } export interface FormSection { id: string; title: string; description: string; fields: FormField[]; defaultNext?: FormDestination; } export interface FormField { id: string; type: "short" | "long" | "single" | "multi" | "select" | "scale" | "email" | "date" | "time" | "file"; label: string; required: boolean; options?: FormOption[]; scale?: FormScale; fileValidation?: FormFileValidation; } export interface FormOption { id: string; label: string; next?: FormDestination; } export interface FormDestination { action: "next" | "submit" | "goToSection"; sectionId?: string; } export interface FormScale { min: number; minLabel: string; max: number; maxLabel: string; style: "circle" | "star"; } export interface FormFileValidation { allowedExtensions: string[]; maxSizeMb: number; maxFiles: number; } export interface FormTheme { primaryColor: string; backgroundColor: string; cardColor: string; textColor: string; backgroundImage?: FormBackgroundImage; } export interface FormBackgroundImage { enabled: boolean; url?: string; fit: "cover" | "contain" | "stretch"; position: string; overlayOpacity: number; } export interface FormConfirmation { title: string; message: string; }