import type { OpenWalletMeta } from './open-wallet-meta.interface';
/**
 * Internal contract for wallet-specific service providers (Apple Pay, Google Pay, etc.).
 *
 * This interface defines the operations that the wallet-specific button classes
 * ({@link ApplePayOpenWalletButton}, {@link GooglePayOpenWalletButton}) delegate
 * to the resolved wallet service after fetching the service configuration.
 *
 * **Note:** This is NOT the merchant-facing API. Merchants interact with
 * {@link ApplePayOpenWalletButton} or {@link GooglePayOpenWalletButton} directly,
 * which orchestrate these providers internally.
 */
export interface IOpenWalletProvider {
    /**
     * Loads the wallet SDK, checks availability, and renders the wallet button.
     * If the wallet is not available, emits the `unavailable` event instead.
     */
    load(): Promise<void>;
    /**
     * Removes the wallet button from the DOM and releases resources.
     */
    destroy(): void;
    /**
     * Updates the wallet metadata (e.g. when order amount or currency changes).
     *
     * @param meta - The updated metadata.
     */
    setMeta(meta: OpenWalletMeta): void;
}
//# sourceMappingURL=payment-source.interface.d.ts.map