import { AminoTypes, SigningStargateClient } from '@cosmjs/stargate';
import { Registry } from '@cosmjs/proto-signing';
import { PropsWithChildren } from 'react';
export interface CosmosWalletConfig {
    chainId: string;
    rpc: string;
    registry?: Registry;
    aminoTypes?: AminoTypes;
}
export interface CosmosWalletLifecycleCallbacks {
    onConnect?: (address: string) => void | Promise<void>;
    onDisconnect?: () => void | Promise<void>;
    onAddressChange?: (newAddress: string) => void | Promise<void>;
    onError?: (error: Error, context?: {
        address?: string;
        walletName?: string;
    }) => void;
}
interface CosmosWalletContextProps {
    loading: boolean;
    bech32Address: string;
    connected: boolean;
    disconnect: () => void;
    open: () => void;
    signingStargateClient: SigningStargateClient | undefined;
    walletName: string;
}
export interface CosmosWalletProviderProps extends PropsWithChildren {
    config: CosmosWalletConfig;
    callbacks?: CosmosWalletLifecycleCallbacks;
}
export declare const CosmosWalletProvider: ({ children, config, callbacks }: CosmosWalletProviderProps) => import("react/jsx-runtime").JSX.Element;
export declare const useCosmosWallet: () => CosmosWalletContextProps;
export {};
