/**
 * WalletOnboardClient - Instance-based client for PayOS Wallet Onboard
 * Provides a consistent API similar to CheckoutClient
 */
import { PayOSConfig } from '../checkout/CheckoutClient';
export interface WalletOnboardOptions {
    /**
     * Authentication token from your backend
     */
    token: string;
    /**
     * Display mode: 'popup' or 'redirect'
     */
    mode?: 'popup' | 'redirect';
    /**
     * Custom base URL for hosted UI
     */
    baseUrl?: string;
    /**
     * Custom query params for testing
     */
    customParams?: Record<string, string>;
    /**
     * Environment: 'sandbox' or 'production'
     */
    environment?: 'sandbox' | 'production';
    /**
     * Return URL for redirect mode
     */
    returnUrl?: string;
    /**
     * Merchant name to display
     */
    merchantName?: string;
    /**
     * Wallet user ID if already known
     */
    walletUserId?: string;
    /**
     * Callback when onboarding is complete
     */
    onComplete?: (data: {
        walletUserId?: string;
        linkedCardIds?: string[];
    }) => void;
    /**
     * Callback when an error occurs
     */
    onError?: (error: Error) => void;
    /**
     * Callback when user cancels
     */
    onCancel?: () => void;
    /**
     * Callback when ready (iframe/popup loaded)
     */
    onReady?: () => void;
}
interface WalletOnboardInstance {
    close: () => void;
}
export declare class WalletOnboardClient {
    private defaultUrl;
    private defaultParams?;
    private popup;
    constructor(config?: PayOSConfig);
    /**
     * Open wallet onboard with specified options
     * Supports popup and redirect modes
     */
    open(options: WalletOnboardOptions): WalletOnboardInstance;
    /**
     * Open wallet onboard in popup mode
     */
    private openPopup;
    /**
     * Open wallet onboard in redirect mode
     */
    private openRedirect;
    /**
     * Close the current wallet onboard instance
     */
    private close;
}
export {};
