import { UnifoldConnectProviderConfig, DepositConfig, DepositResult, WithdrawConfig, WithdrawResult } from '@unifold/connect-react';
export { DepositConfig, DepositError, DepositInitialScreen, DepositMethod, DepositResult, UnifoldConnectProviderConfig, WithdrawConfig, WithdrawError, WithdrawResult, WithdrawTransactionInfo } from '@unifold/connect-react';

type UnifoldConfig = UnifoldConnectProviderConfig['config'];
interface UnifoldHandle {
    beginDeposit: (config: DepositConfig) => Promise<DepositResult>;
    closeDeposit: () => void;
    beginWithdraw: (config: WithdrawConfig) => Promise<WithdrawResult>;
    closeWithdraw: () => void;
}
interface UnifoldInstance {
    beginDeposit: (config: DepositConfig) => Promise<DepositResult>;
    closeDeposit: () => void;
    beginWithdraw: (config: WithdrawConfig) => Promise<WithdrawResult>;
    closeWithdraw: () => void;
    destroy: () => void;
}
declare function createUnifold(publishableKey: string, config?: UnifoldConfig): Promise<UnifoldInstance>;

export { type UnifoldConfig, type UnifoldHandle, type UnifoldInstance, createUnifold };
