/**
 * Self-contained EIP-1193 Provider for World App
 *
 * Works with any Ethereum library (viem, ethers, wagmi, or raw EIP-1193).
 * Triggers walletAuth on `eth_requestAccounts` and routes all other RPC
 * methods to MiniKit's native commands.
 *
 * @example
 * ```typescript
 * // viem
 * import { createWalletClient, custom } from 'viem';
 * import { getWorldAppProvider } from '@worldcoin/minikit-js';
 * const client = createWalletClient({ transport: custom(getWorldAppProvider()), chain: worldchain });
 *
 * // ethers
 * import { BrowserProvider } from 'ethers';
 * import { getWorldAppProvider } from '@worldcoin/minikit-js';
 * const provider = new BrowserProvider(getWorldAppProvider());
 * ```
 */
type WorldAppProvider = {
    request: (args: {
        method: string;
        params?: unknown;
    }) => Promise<unknown>;
    on: (event: string, fn: (...args: unknown[]) => void) => void;
    removeListener: (event: string, fn: (...args: unknown[]) => void) => void;
};
declare global {
    interface Window {
        __worldapp_eip1193_provider__?: WorldAppProvider;
        __worldapp_eip1193_address__?: `0x${string}`;
    }
}
/**
 * Get the EIP-1193 provider for World App.
 *
 * Returns a singleton instance (stored on `window`) so all consumers
 * share the same provider and address state, even across separate bundles.
 */
declare function getWorldAppProvider(): WorldAppProvider;

export { type WorldAppProvider as W, getWorldAppProvider as g };
