import type { WalletChain, WalletProviderId } from "../config/types.wallet.js";
import type { WalletProviderAdapter } from "./wallet-provider-adapter.js";
export type WalletProviderChainOps = {
    receiveAddress: boolean;
    getBalance: boolean;
    prepare: boolean;
    send: boolean;
};
export type WalletProviderCapabilityMatrix = {
    providerId: WalletProviderId;
    supportedChains: WalletChain[];
    integrationMode: "native" | "bridge";
    operations: {
        createWallet: boolean;
        receiveAddress: boolean;
        getBalance: boolean;
        prepare: boolean;
        send: boolean;
        deposit: boolean;
        withdraw: boolean;
        rotateKeys: boolean;
        resetKeys: boolean;
    };
    chains: {
        solana: WalletProviderChainOps;
    };
    requiresCredentials: boolean;
    requiresRpcSecret: boolean;
};
export type KnownRpcProviderProfile = {
    id: string;
    displayName: string;
    supportedChains: Array<"solana">;
    features: string[];
};
export declare function buildWalletProviderCapabilityMatrix(adapter: WalletProviderAdapter): WalletProviderCapabilityMatrix;
export declare function providerSupportsChainOperation(params: {
    matrix: WalletProviderCapabilityMatrix;
    chain: WalletChain;
    operation: keyof WalletProviderChainOps;
}): boolean;
export declare function validateRpcProviderChainCompatibility(params: {
    provider: string;
    chain: "solana" | "multi";
}): {
    ok: boolean;
    message: string;
};
export declare function listKnownRpcProviderProfiles(): KnownRpcProviderProfile[];
export declare function inferRpcProviderFromUrl(rpcUrl: string): string | undefined;
export declare function extractRpcApiKeyFromUrl(rpcUrl: string): string | undefined;
