import { DropDownFormSectionData } from '../dropdown-form-section/dropdown-form-section-data';
import { OrderFormSectionData } from '../order-form-section/order-form-section-data';
import { FieldBase, FieldBaseOptions } from '../fields/field-base';
import { DropDownFieldOptions } from '../fields/field-dropdown';
import { FileUploadGroupFieldOptions } from '../fields/field-fileuploadgroup';
import { TextBoxFieldOptions } from '../fields/field-textbox';
import { VBCUserFieldOptions } from '../fields/field-vbcuser';
export declare type OrderFormFieldOptionsType = (FieldBaseOptions | DropDownFieldOptions | FileUploadGroupFieldOptions | TextBoxFieldOptions | VBCUserFieldOptions);
export interface OrderFormInterface {
    appId: string;
    addonId?: string;
    commonForm?: IncludedCommonFormFieldsInterface;
    commonFormRequiredFields?: IncludedCommonFormFieldsInterface;
    customFields?: OrderFormFieldOptionsType[];
}
export interface IncludedCommonFormFieldsInterface {
    businessName?: boolean;
    businessAddress?: boolean;
    businessPhoneNumber?: boolean;
    businessAccountGroupId?: boolean;
    businessWebsite?: boolean;
    salespersonName?: boolean;
    salespersonPhoneNumber?: boolean;
    salespersonEmail?: boolean;
    contactName?: boolean;
    contactPhoneNumber?: boolean;
    contactEmail?: boolean;
}
export interface CommonFormSectionInterface {
    fields: CommonFormFieldInterface[];
    sectionName?: string;
    populatedData?: CommonFormData;
}
export interface AddonKeyInterface {
    addonId?: string;
    appId?: string;
}
export interface CommonFormFieldInterface extends FieldBase<any> {
    productIds?: string[];
    addonKeys?: AddonKeyInterface[];
}
export interface CommonFieldIdsInterface {
    fieldId: string;
    required: boolean;
}
export interface CommonFormData {
    contact_email?: string;
    contact_name?: string;
    contact_phone_number?: string;
    business_account_group_id?: string;
    business_name?: string;
    business_address?: string;
    business_phone_number?: string;
    business_website?: string;
    salesperson_name?: string;
    salesperson_email?: string;
    salesperson_phone_number?: string;
}
export declare class ProductOrderFormSectionData extends OrderFormSectionData {
    productId: string;
    subsections: AddonDropDownFormSectionData[];
}
export declare class AddonDropDownFormSectionData extends DropDownFormSectionData {
    productId: string;
    addonId: string;
}
export interface ProductInfoInterface {
    productId: string;
    name?: string;
    tagline?: string;
    icon?: string;
    addonInfo?: AddonInfoInterface[];
}
export interface AddonInfoInterface {
    addonId: string;
    name?: string;
}
export interface CustomFieldsAnswers {
    productID: string;
    addonKey?: AddonKeyInterface;
    customFieldsAnswers: CustomFieldsAnswer[];
}
export interface CustomFieldsAnswer {
    fieldId: string;
    answer?: string;
}
export interface OrderFormOptionsInterface {
    bypassRequiredQuestions?: boolean;
    readOnly?: boolean;
    showOfficeUseQuestions?: boolean;
}
