import { OnChanges, SimpleChanges } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { CommonFormData, CommonFormSectionInterface, CustomFieldsAnswer, CustomFieldsAnswers, OrderFormFieldOptionsType, OrderFormInterface, OrderFormOptionsInterface, ProductInfoInterface, ProductOrderFormSectionData } from './interface';
import { DropDownFormSectionData, User } from '../..';
import { CommonField, CustomField, Field } from '@vendasta/sales-orders';
import { BehaviorSubject } from 'rxjs';
export declare class OrderFormComponent implements OnChanges {
    commonData: CommonFormData;
    answers: CustomFieldsAnswers[];
    parentForm: FormGroup;
    fileUploadUrl: string;
    orderForms: OrderFormInterface[];
    productInfo: ProductInfoInterface[];
    users: User[];
    extraFields: OrderFormFieldOptionsType[];
    extraFieldsAnswers: CustomFieldsAnswer[];
    orderFormOptions: OrderFormOptionsInterface;
    commonFormSections: CommonFormSectionInterface[];
    customFormSections: ProductOrderFormSectionData[];
    extraFieldsSection: DropDownFormSectionData;
    dropdownOpen$$: BehaviorSubject<boolean>;
    dropdownOpen$: import("rxjs").Observable<boolean>;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * returns the data from common form fields in a format that is usable by sales orders
     */
    getCommonFormData(): CommonField[];
    /**
     * returns the data from custom forms in a format that is usable by sales orders
     */
    getCustomFormData(): CustomField[];
    /**
     * returns the data from extra fields in a format that is usable by sales orders
     */
    getExtraFieldsData(): Field[];
    /**
     * returns true if any fields in the custom form sections are required and office use/editable only
     */
    orderFormRequiresPartnerInput(): boolean;
    /**
     * changes the read only state of the sales order form
     */
    changeReadOnly(readOnly: boolean): void;
    openDropdown(): void;
}
export declare class OrderFormOptions implements OrderFormOptionsInterface {
    bypassRequiredQuestions: boolean;
    readOnly: boolean;
    showOfficeUseQuestions: boolean;
    constructor(i: OrderFormOptionsInterface);
}
