export type SolanaMintInfo = {
    mint: string;
    tokenProgramId: string;
    decimals: number;
};
export type SolanaWalletAsset = {
    id: string;
    chain: "solana";
    kind: "native" | "spl-token";
    symbol: string;
    name: string;
    amountRaw: string;
    amountDisplay: string;
    decimals: number;
    unit: string;
    isNative: boolean;
    address?: string;
    program?: string;
    tokenProgramId?: string;
    metadataUri?: string;
    logoUri?: string;
    verificationStatus?: "verified" | "unverified" | "unknown";
    verificationSource?: "jupiter" | "metadata-uri" | "unknown";
    priceUsd?: number;
    valueUsd?: number;
    tags?: string[];
};
type SolanaFungibleMetadata = {
    symbol: string;
    name: string;
    uri?: string;
};
type SolanaAssetRpcMethodMetrics = {
    requestsSinceStart: number;
    successesSinceStart: number;
    failuresSinceStart: number;
};
export declare function parseMetaplexMetadataAccount(base64Data: string): SolanaFungibleMetadata | null;
export declare function formatTokenAmount(raw: string, decimals: number): string;
export declare function fetchSolanaRpc<T>(rpcUrl: string, method: string, params: unknown[]): Promise<T | null>;
export declare function fetchSolanaFungibleMetadataViaRpc(params: {
    rpcUrl: string;
    mint: string;
}): Promise<SolanaFungibleMetadata | null>;
export declare function fetchSolanaNativeBalanceViaRpc(params: {
    rpcUrl: string;
    ownerAddress: string;
}): Promise<string | null>;
export declare function fetchSolanaMintInfoViaRpc(params: {
    rpcUrl: string;
    mint: string;
}): Promise<SolanaMintInfo | null>;
export declare function fetchSolanaTokenBalanceViaRpc(params: {
    rpcUrl: string;
    ownerAddress: string;
    mint: string;
}): Promise<{
    amountRaw: string;
    decimals: number;
    tokenProgramId: string;
} | null>;
export declare function fetchSolanaWalletAssetsViaRpc(params: {
    rpcUrl: string;
    ownerAddress: string;
    nativeLamports?: string | null;
}): Promise<SolanaWalletAsset[]>;
export declare const SOLANA_ASSET_CONSTANTS: {
    readonly nativeMint: "So11111111111111111111111111111111111111112";
    readonly tokenProgramId: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
    readonly token2022ProgramId: "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
    readonly metaplexMetadataProgramId: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s";
};
export declare function invalidateSolanaAssetRpcCaches(): void;
export declare function summarizeSolanaAssetRpcMetrics(): {
    startedAt: string;
    methods: Array<{
        method: string;
    } & SolanaAssetRpcMethodMetrics>;
};
export {};
