import { EventEmitter } from '../../../../stencil-public-runtime';
import { ComponentErrorEvent, ComponentFormStepCompleteEvent, IBankAccount } from '../../../../api';
import { CountryCode } from '../../../../utils/country-codes';
import { FormController } from '../../../../ui-components/form/form';
export declare class BusinessBankAccountFormStep {
    formController: FormController;
    errors: any;
    bankAccount: IBankAccount;
    isLoading: boolean;
    viewMode: 'readonly' | 'plaid' | 'manual';
    getBusiness: Function;
    postBankAccount: Function;
    bankAccountVerification: boolean;
    platformAccountId: string | null;
    authToken: string;
    businessId: string;
    allowOptionalFields?: boolean;
    country: CountryCode;
    propChanged(): void;
    watchHandler(newValue: boolean): void;
    errorEvent: EventEmitter<ComponentErrorEvent>;
    stepCompleteEvent: EventEmitter<ComponentFormStepCompleteEvent>;
    formLoading: EventEmitter<boolean>;
    validateAndSubmit({ onSuccess }: {
        onSuccess: any;
    }): Promise<void>;
    componentWillLoad(): void;
    componentDidLoad(): void;
    private initializeApi;
    private getSchema;
    initializeFormController: () => void;
    inputHandler: (name: string, value: string) => void;
    get postPayload(): {
        account_owner_name: string;
        account_type: string;
        account_number: string;
        routing_number: string;
        institution_number: string;
        transit_number: string;
        bank_name: string;
        nickname: string;
        business_id: string;
    };
    get existingBankAccount(): boolean;
    get plaidAvailable(): boolean;
    get showCancel(): boolean;
    private processBusinessResponse;
    private determineViewMode;
    private getData;
    private sendData;
    private postBankAccountData;
    private refreshBankAccountData;
    handleChangeBankAccount: () => void;
    handleCancel: () => void;
    handleToggleToManualEntry: () => void;
    handleToggleToPlaidVerification: () => void;
    handleSaveBankAccount: () => Promise<void>;
    private renderBankAccountInputs;
    private renderReadonlyView;
    private renderPlaidView;
    private renderManualEntryView;
    render(): any;
}
