export type AccessTokenWrapper = { readonly accessToken: string } export type ComponentCheckbox = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly options: readonly string[] readonly description?: string } export type ComponentDropdown = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly placeholder: string readonly label: string readonly options: readonly string[] readonly description?: string } export type ComponentGrading = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly ratingViewType: RatingViewType readonly description?: string } export type ComponentGrading0To10 = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly ratingViewType: RatingViewType readonly description?: string } export type ComponentGrading1To10 = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly ratingViewType: RatingViewType readonly description?: string } export type ComponentImage = { readonly index: number readonly id: number readonly unique_name: string readonly imageObject?: Image readonly uploadedResource?: Image } export type ComponentLabel = { readonly index: number readonly id: number readonly unique_name: string readonly labelContent?: string readonly num_of_lines: number } export type ComponentNps = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly description?: string readonly ratingViewType: RatingViewType } export type ComponentRadioSelector = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly label: string readonly options: readonly string[] readonly description?: string } export type ComponentTextArea = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly placeholder: string readonly label: string readonly num_of_lines: number readonly description?: string } export type ComponentTextInput = { readonly index: number readonly id: number readonly unique_name: string readonly required: boolean readonly placeholder: string readonly label: string readonly max_chars: number readonly description?: string } export type Configuration = { readonly propertyId: number readonly feedbackSubmitUrl: string readonly forms: readonly Form[] } export type DynamicData = { readonly index: number readonly id: number readonly required: boolean readonly component: string readonly unique_name: string readonly placeholder: string readonly label: string readonly description?: string readonly options?: readonly string[] readonly imageObject?: Image } export type Feedback = { readonly formId: number readonly dynamicData: FeedbackData } export type FeedbackCheckbox = { readonly index: number readonly id: number readonly unique_name: string readonly value: readonly number[] readonly type: string } export type FeedbackData = { readonly customParams?: JSONValue readonly pages: readonly FeedbackPage[] } export type FeedbackDropdown = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackGrading = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackGrading0To10 = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackGrading1To10 = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackNps = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackPage = { readonly components: | readonly FeedbackNps | FeedbackTextArea | FeedbackTextInput | FeedbackRadioSelector | FeedbackCheckbox | FeedbackDropdown | FeedbackGrading | FeedbackGrading0To10 | FeedbackGrading1To10[] } export type FeedbackRadioSelector = { readonly index: number readonly id: number readonly unique_name: string readonly value: number readonly type: string } export type FeedbackTextArea = { readonly index: number readonly id: number readonly unique_name: string readonly value: string readonly type: string } export type FeedbackTextInput = { readonly index: number readonly id: number readonly unique_name: string readonly value: string readonly type: string } export type Form = { readonly formId: number readonly name: string readonly title: string readonly formType: FormType readonly inviteData?: InviteData readonly triggerData?: TriggerData readonly formJson: FormJson } export type FormJson = { readonly pages: readonly Page[] } export type Image = { readonly name: string readonly url: string } export type InviteData = { readonly invitationHeadline: string readonly invitationText: string readonly provideButtonText: string readonly declineButtonText: string readonly laterButtonText: string } export type NumberOfAppSession = { readonly number: string readonly compareString: CompareString } export type NumberOfDays = { readonly days: string } export type Page = { readonly name: string readonly index: number readonly dynamicData: | readonly ComponentLabel | ComponentImage | ComponentNps | ComponentTextArea | ComponentTextInput | ComponentRadioSelector | ComponentCheckbox | ComponentDropdown | ComponentGrading | ComponentGrading0To10 | ComponentGrading1To10[] } export type PercentageOfSessions = { readonly prec: string } export type TimeInForeground = { readonly time: string readonly compareString: CompareString } export type TriggerData = { readonly numberOfAppSession?: NumberOfAppSession readonly timeInForeground?: TimeInForeground readonly mobileappVersion?: readonly string[] readonly submitted?: NumberOfDays readonly declined?: NumberOfDays readonly mobileosVersion?: readonly string[] readonly percentageOfSessions?: PercentageOfSessions readonly genericRule?: string } export type CompareString = 'greaterThan' | 'equals' | 'smallerThan' export type FormType = 'mobileInvitation' | 'code' export type RatingViewType = | 'slide' | 'numbersSquare' | 'gradingSlider' | 'gradingDropdown' | 'stars' | 'emoticons' | 'numbers' | 'smilies' | 'bars' export type JSONValue = | string | number | boolean | { readonly [x: string]: JSONValue } | readonly JSONValue[]