import { CommonField, CustomField, Field } from '@vendasta/sales-orders';
import { CommonFormData, CommonFormSectionInterface, CustomFieldsAnswer, CustomFieldsAnswers, OrderFormFieldOptionsType, OrderFormInterface, ProductInfoInterface, ProductOrderFormSectionData } from './interface';
import { FieldBase, User, DropDownFormSectionData } from '../..';
import { FormGroup } from '@angular/forms';
import { OrderFormOptions } from './order-form.component';
export declare class OrderFormService {
    static camelToSnakeCaseMap: {
        contactName: string;
        contactEmail: string;
        contactPhoneNumber: string;
        businessAccountGroupId: string;
        businessName: string;
        businessAddress: string;
        businessPhoneNumber: string;
        businessWebsite: string;
        salespersonName: string;
        salespersonEmail: string;
        salespersonPhoneNumber: string;
    };
    static fieldIdToTranslationKeyMap: {
        businessName: string;
        businessAddress: string;
        businessPhoneNumber: string;
        businessWebsite: string;
        businessAccountGroupId: string;
        salespersonName: string;
        salespersonPhoneNumber: string;
        salespersonEmail: string;
        contactName: string;
        contactPhoneNumber: string;
        contactEmail: string;
    };
    static fieldIdToEnglishNameMap: {
        business_name: string;
        business_address: string;
        business_phone_number: string;
        business_website: string;
        business_account_group_id: string;
        salesperson_name: string;
        salesperson_phone_number: string;
        salesperson_email: string;
        contact_name: string;
        contact_phone_number: string;
        contact_email: string;
    };
    private static extractRequiredCommonFieldIds;
    private static buildCommonFieldIds;
    private static fillCommonFormSections;
    private static buildCommonOrderFormFields;
    private static buildOrderFormSectionData;
    private static getValueFromCustomFieldsAnswer;
    private static buildCustomOrderFormFields;
    private static encodeCustomFieldId;
    private static decodeCustomFieldId;
    private static mapFieldType;
    private static getOptionFromValue;
    private static getAnswerFromFieldBase;
    private static orderFieldToSalesOrderField;
    private static productOrderFormToCustomFields;
    static getCommonFormSections(orderForms: OrderFormInterface[], commonData: CommonFormData, options: OrderFormOptions): CommonFormSectionInterface[];
    static getCustomFormSections(orderForms: OrderFormInterface[], products: ProductInfoInterface[], parentForm: FormGroup, fileUploadUrl: string, users: User[], answers: CustomFieldsAnswers[], options: OrderFormOptions): ProductOrderFormSectionData[];
    static getExtraFieldsSection(extraFields: OrderFormFieldOptionsType[], parentForm: FormGroup, fileUploadUrl: string, users: User[], answers: CustomFieldsAnswer[], options: OrderFormOptions): DropDownFormSectionData;
    static getCustomFieldsData(customFormSections: ProductOrderFormSectionData[]): CustomField[];
    static getCommonFieldsData(commonFormSections: CommonFormSectionInterface[]): CommonField[];
    static getExtraFieldsData(extraFieldsSection: DropDownFormSectionData): Field[];
    static containsFieldsThatMatch(customFormSections: ProductOrderFormSectionData[], matcher: (f: FieldBase<any>) => boolean): boolean;
    constructor();
}
