import type { Dispatch, StateUpdater } from 'preact/hooks';
import type { components } from '#api/transferInstruments/transferInstruments.contract';
import type { BankVerificationVendor } from '../../../../api/transferInstruments/transferInstruments.types';
import type { BaseInnerFormProps } from '../../../../hooks/useForm/types';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { Currency } from '../../../../types/datasets/currency';
import type { PayoutDetailsProps } from '../PayoutDetails/types';
export type AccountVerificationResponse = components['schemas']['BankAccountSummary'];
export interface AccountVerificationSchema {
    verifiedBankAccountNumber?: string;
    verifiedAccountHolder?: string;
    verifiedCurrencyCode?: Currency;
    verifiedBankCountry?: string;
    verifiedBankName?: string;
}
export interface PayoutAccountVerificationProps extends BaseInnerFormProps<AccountVerificationSchema> {
    provider: BankVerificationVendor | undefined;
    setBankVerificationError: Dispatch<StateUpdater<InstantVerificationErrorNotification | null>>;
    onBack?: () => void;
    country: CountryCode;
    hideSidebar?: Dispatch<StateUpdater<boolean>>;
    bankInfoValidated?: boolean;
    setBankInfoValidated?: Dispatch<StateUpdater<boolean>>;
    formIsActive: boolean;
    createTrustedTransferInstrument: PayoutDetailsProps['createTrustedTransferInstrument'];
}
export interface InstantVerificationErrorNotification {
    title: string;
    content?: string;
}
export type BankVerificationOverlayProps = {
    url: string;
    setBankVerificationError: Dispatch<StateUpdater<InstantVerificationErrorNotification | null>>;
    onBack?: () => void;
    retrieveBankAccountInfo: (res: AccountVerificationResponse) => void;
    createTrustedTransferInstrument: PayoutDetailsProps['createTrustedTransferInstrument'];
    providerName?: string;
};
