import { DepositConfig, GenerateDepositAddressInput, DepositAddressQuote, GetDepositInput, DepositAddressOrder, WaitForDepositInput, DepositAddressPollingResult, WaitForCompletionInput } from '@privy-io/js-sdk-core';
export { DepositAddressOrder, DepositAddressPollingResult, DepositAddressQuote, DepositConfig, GenerateDepositAddressInput, GetDepositInput, WaitForCompletionInput, WaitForDepositInput } from '@privy-io/js-sdk-core';

interface UseDepositAddressInterface {
    /** Fetches the deposit config from the server. */
    getConfig: () => Promise<DepositConfig>;
    /** Generates a deposit address. Resolves a refund address automatically if not provided. */
    generateDepositAddress: (opts: GenerateDepositAddressInput) => Promise<DepositAddressQuote>;
    /** Fetches enriched deposit details by order ID. */
    getDeposit: (opts: GetDepositInput) => Promise<DepositAddressOrder>;
    /** Polls until funds are received at the deposit address. */
    waitForDeposit: (opts: WaitForDepositInput) => Promise<DepositAddressPollingResult>;
    /** Polls until the deposit reaches a terminal status. */
    waitForCompletion: (opts: WaitForCompletionInput) => Promise<DepositAddressPollingResult>;
}
/** @experimental This interface may change at any time. */
declare const useDepositAddress: () => UseDepositAddressInterface;

export { useDepositAddress };
export type { UseDepositAddressInterface };
