import { StandardConnectFeature, StandardDisconnectFeature, StandardEventsFeature, WalletWithFeatures, type Wallet as StandardWallet } from "@wallet-standard/core";
import { ConnectorID } from "../../core/types/wallet";
type StandardWalletFeatures = Array<keyof StandardWallet["features"]>;
type StandardFeatures = StandardConnectFeature & StandardEventsFeature & Partial<StandardDisconnectFeature>;
export type StandardWalletWithCustomFeatures<AdditionalFeatures extends StandardWallet["features"]> = WalletWithFeatures<StandardFeatures & AdditionalFeatures>;
/**
 * Validates that a given standard wallet has all the required standard features
 * and additional custom features
 */
export declare function isStandardWalletWithCustomFeatures<S extends StandardWallet>(wallet: StandardWallet, customFeatures: StandardWalletFeatures): wallet is S;
export type StandardWalletOverrides = Partial<{
    icon: string;
    connectorId: ConnectorID;
    name: string;
}>;
/**
 * Mapping of an ID and custom wallet overrides
 * Used to unify wallets with different IDs into a single wallet
 * These IDs can come from different wallet providers, e.g. EIP6963, wallets-standard, etc.
 *
 * @example Unify Metamask (EVM) and Metamask (Solana) to have the same icon, name, and ID
 */
export declare const standardWalletOverrides: Partial<Record<string, StandardWalletOverrides>>;
export {};
