import type { WebhookClient } from "../webhooks/client"; import type { CreateWebhookRequest, UpdateWebhookRequest, Webhook } from "../types/webhooks"; import type { GetAssetFn } from "./methods/getAsset"; import type { GetAssetBatchFn } from "./methods/getAssetBatch"; import type { GetAssetProofFn } from "./methods/getAssetProof"; import type { GetAssetProofBatchFn } from "./methods/getAssetProofBatch"; import type { GetAssetsByAuthorityFn } from "./methods/getAssetsByAuthority"; import type { GetAssetsByCreatorFn } from "./methods/getAssetsByCreator"; import type { GetAssetsByGroupFn } from "./methods/getAssetsByGroup"; import type { GetPriorityFeeEstimateFn } from "./methods/getPriorityFeeEstimate"; import type { GetAssetsByOwnerFn } from "./methods/getAssetsByOwner"; import type { GetNftEditionsFn } from "./methods/getNftEditions"; import type { GetSignaturesForAssetFn } from "./methods/getSignaturesForAsset"; import type { GetTokenAccountsFn } from "./methods/getTokenAccounts"; import type { SearchAssetsFn } from "./methods/searchAssets"; import type { GetProgramAccountsV2Fn } from "./methods/getProgramAccountsV2"; import type { GetAllProgramAccountsFn } from "./methods/getAllProgramAccounts"; import type { GetTokenAccountsByOwnerV2Fn } from "./methods/getTokenAccountsByOwnerV2"; import type { GetAllTokenAccountsByOwnerFn } from "./methods/getAllTokenAccountsByOwner.js"; import type { GetTransactionsForAddressFn } from "./methods/getTransactionsForAddress"; import type { EnhancedTxClientLazy } from "../enhanced"; import { TxHelpersLazy } from "../transactions"; import type { ResolvedHeliusRpcApi } from "./heliusRpcApi"; import { WsAsync } from "../websockets/wsAsync"; import { StakeClientLazy } from "../staking/client"; import { ZkClientLazy } from "../zk/client"; import type { WalletClient } from "../wallet/client"; import type { AuthClient } from "../auth/types"; import type { HeliusRpcOptions } from "./types"; export type { HeliusRpcOptions }; /** * The main Helius SDK client. Provides access to all Helius and Solana RPC * methods, DAS (Digital Asset Standard) queries, priority fee estimation, * webhooks, enhanced transaction parsing, smart transaction helpers, * WebSocket subscriptions, staking, and ZK compression. * * All standard Solana RPC methods (e.g. `getBalance`, `getSlot`) are available * directly on this object via a Proxy that delegates to the underlying * `@solana/kit` RPC client. * * Sub-clients (`webhooks`, `enhanced`, `tx`, `ws`, `stake`, `zk`, `wallet`) * are lazily loaded on first access to keep the initial bundle minimal. */ export type HeliusClient = ResolvedHeliusRpcApi & { /** The unwrapped Solana RPC client for direct access to standard RPC methods. */ raw: ResolvedHeliusRpcApi; /** Fetch a single asset by its ID (mint address). */ getAsset: GetAssetFn; /** Fetch multiple assets by their IDs in a single batch request. */ getAssetBatch: GetAssetBatchFn; /** Get the Merkle proof for a compressed asset. */ getAssetProof: GetAssetProofFn; /** Get Merkle proofs for multiple compressed assets in a batch. */ getAssetProofBatch: GetAssetProofBatchFn; /** List assets by their update authority address. */ getAssetsByAuthority: GetAssetsByAuthorityFn; /** List assets created by a specific creator address. */ getAssetsByCreator: GetAssetsByCreatorFn; /** List assets belonging to a specific group (e.g. a collection). */ getAssetsByGroup: GetAssetsByGroupFn; /** List all assets owned by a wallet address. */ getAssetsByOwner: GetAssetsByOwnerFn; /** Get transaction signatures related to an asset. */ getSignaturesForAsset: GetSignaturesForAssetFn; /** Get print editions for an NFT master edition. */ getNftEditions: GetNftEditionsFn; /** Get token accounts filtered by mint or owner. */ getTokenAccounts: GetTokenAccountsFn; /** Search for assets using flexible filters (owner, creator, collection, etc.). */ searchAssets: SearchAssetsFn; /** Estimate priority fees for a transaction or set of account keys. */ getPriorityFeeEstimate: GetPriorityFeeEstimateFn; /** Paginated version of `getProgramAccounts` with cursor-based pagination. */ getProgramAccountsV2: GetProgramAccountsV2Fn; /** Auto-paginating variant that fetches all program accounts across pages. */ getAllProgramAccounts: GetAllProgramAccountsFn; /** Paginated version of `getTokenAccountsByOwner` with cursor-based pagination. */ getTokenAccountsByOwnerV2: GetTokenAccountsByOwnerV2Fn; /** Auto-paginating variant that fetches all token accounts for an owner. */ getAllTokenAccountsByOwner: GetAllTokenAccountsByOwnerFn; /** Get transactions for a specific address with rich filtering and pagination. */ getTransactionsForAddress: GetTransactionsForAddressFn; /** Webhook management client. Requires an API key. */ webhooks: { /** Create a new webhook subscription. */ create(params: CreateWebhookRequest): Promise; /** Get a webhook by its ID. */ get(webhookID: string): Promise; /** List all webhooks for the current API key. */ getAll(): Promise; /** Update an existing webhook. */ update(webhookID: string, params: UpdateWebhookRequest): Promise; /** Delete a webhook by its ID. */ delete(webhookID: string): Promise; } & WebhookClient; /** Enhanced transaction parsing client. Requires an API key. */ enhanced: EnhancedTxClientLazy; /** Smart transaction helpers for building, signing, and sending transactions with automatic compute budget and priority fees. */ tx: TxHelpersLazy; /** WebSocket RPC subscriptions (logs, slots, signatures, programs, accounts). */ ws: WsAsync; /** Helius native staking helpers (stake, unstake, withdraw to the Helius validator). */ stake: StakeClientLazy; /** ZK compression RPC methods for Light Protocol compressed accounts and tokens. */ zk: ZkClientLazy; /** Wallet API client. Requires an API key. */ wallet: WalletClient; /** Auth client for agentic signup, checkout, and account management. */ auth: AuthClient; }; /** * Create a Helius SDK client. * * @example * ```ts * import { createHelius } from "helius-sdk"; * * const helius = createHelius({ apiKey: "YOUR_API_KEY" }); * * // Standard Solana RPC * const balance = await helius.getBalance("So11...").send(); * * // DAS — fetch an asset * const asset = await helius.getAsset({ id: "MINT_ADDRESS" }); * * // Smart transactions * const sig = await helius.tx.sendSmartTransaction({ signers, instructions }); * ``` */ export declare const createHelius: ({ apiKey, network, rebateAddress, baseUrl, userAgent, }: HeliusRpcOptions) => HeliusClient; //# sourceMappingURL=index.d.ts.map