import type { Dispatch, StateUpdater } from 'preact/hooks';
import type { BankVerificationErrorResponse, CreateTrustedTransferInstrumentResponse } from '../../../../../../api/transferInstruments/transferInstruments.types';
import type { PayoutDetailsProps } from '../../../PayoutDetails/types';
import type { AccountVerificationResponse, InstantVerificationErrorNotification } from '../../types';
import type { AccountVerificationCallbackErrorObject } from './iframeWidget';
export declare const VerificationWidgetCallbackActions: {
    readonly HANDLE_EXCEPTION: "handle_exception";
    readonly VERIFICATION_SUCCESS: "verification_success";
    readonly RETRY_VERIFICATION: "retry_verification";
    readonly HANDLE_EVENT: "handle_event";
};
type SuccessPayload = {
    action: typeof VerificationWidgetCallbackActions.VERIFICATION_SUCCESS;
    result: CreateTrustedTransferInstrumentResponse;
};
type ExceptionPayload = {
    action: typeof VerificationWidgetCallbackActions.HANDLE_EXCEPTION;
    err: Error | AccountVerificationCallbackErrorObject | BankVerificationErrorResponse | undefined;
};
type EventPayload = {
    action: typeof VerificationWidgetCallbackActions.HANDLE_EVENT;
    event: {
        name: string;
        provider: string;
    };
};
type RetryPayload = {
    action: typeof VerificationWidgetCallbackActions.RETRY_VERIFICATION;
};
export type VerificationWidgetCallback = (payload: SuccessPayload | ExceptionPayload | RetryPayload | EventPayload) => void;
export type BankVerificationWidgetProps = {
    url: string;
    vendor: string;
    fullscreen?: boolean;
    setBankVerificationError: Dispatch<StateUpdater<InstantVerificationErrorNotification | null>>;
    setHideVerificationWidget: Dispatch<StateUpdater<boolean>>;
    onBack?: () => void;
    retrieveBankAccountInfo: (res: AccountVerificationResponse) => void;
    createTrustedTransferInstrument: PayoutDetailsProps['createTrustedTransferInstrument'];
};
export {};
