import { EventEmitter } from '../../../stencil-public-runtime';
import { FormController } from '../../../ui-components/form/form';
import { Identity, Owner } from '../../../api/Identity';
import { ComponentClickEvent, ComponentErrorEvent } from '../../../api/ComponentEvents';
import { CountryCode } from '../../../utils/country-codes';
export declare class OwnerForm {
    isLoading: boolean;
    formController: FormController;
    errors: any;
    owner: Owner;
    getOwner: Function;
    patchOwner: Function;
    postOwner: Function;
    authToken: string;
    ownerId?: string;
    businessId?: string;
    allowOptionalFields?: boolean;
    removeOwner: (id: string) => void;
    newFormOpen?: boolean;
    ownersLength?: number;
    country: CountryCode;
    loadingWatcher(): void;
    clickEvent: EventEmitter<ComponentClickEvent>;
    errorEvent: EventEmitter<ComponentErrorEvent>;
    formLoading: EventEmitter<boolean>;
    ownerSubmitted: EventEmitter<any>;
    constructor();
    returnOwnerData(): Promise<string>;
    getOwnershipPercentage(): Promise<string | null>;
    setOwnershipPercentageError(message: string): Promise<void>;
    validate(): Promise<boolean>;
    submit(): Promise<boolean>;
    validateAndSubmit(event: any): Promise<void>;
    get payload(): {
        address: {
            platform_account_id: string;
            line1: string;
            line2: string;
            postal_code: string;
            city: string;
            state: string;
            country: string;
        };
        dob_day: string;
        dob_month: string;
        dob_year: string;
        email: string;
        identification_number: string;
        is_owner: boolean;
        metadata: any;
        name: string;
        phone: string;
        platform_account_id: string;
        title: string;
        ownership_percentage: string;
    } | {
        business_id: string;
        address: {
            platform_account_id: string;
            line1: string;
            line2: string;
            postal_code: string;
            city: string;
            state: string;
            country: string;
        };
        dob_day: string;
        dob_month: string;
        dob_year: string;
        email: string;
        identification_number: string;
        is_owner: boolean;
        metadata: any;
        name: string;
        phone: string;
        platform_account_id: string;
        title: string;
        ownership_percentage: string;
    };
    get formTitle(): "Edit Business Owner" | "Add Business Owner";
    get submitButtonText(): "Update" | "Add";
    get showRemoveButton(): boolean;
    componentWillLoad(): void;
    componentDidLoad(): void;
    private initializeApi;
    private getData;
    private sendData;
    instantiateOwner: (data: Identity) => Promise<void>;
    handleAddOwner: () => void;
    handleRemoveOwner: () => void;
    render(): any;
}
