@nosana/kit
Version:
Nosana KIT
59 lines (58 loc) • 2.29 kB
TypeScript
import { NosanaNetwork } from '@nosana/types';
import { createIpfsClient } from '@nosana/ipfs';
import { type NosanaApi } from '@nosana/api';
import { type NosanaAuthorization } from '@nosana/authorization';
import { Logger } from './logger/Logger.js';
import { ClientConfig, PartialClientConfig } from './config/index.js';
import { type JobsProgram } from './services/programs/jobs/index.js';
import { type StakeProgram } from './services/programs/stake/index.js';
import { type MerkleDistributorProgram } from './services/programs/merkleDistributor/index.js';
import { type SolanaService } from './services/solana/index.js';
import { type TokenService } from './services/token/index.js';
import type { Wallet } from './types.js';
/**
* The Nosana client interface. Contains all the services and programs
* needed to interact with the Nosana network.
*/
export interface NosanaClient {
readonly config: ClientConfig;
readonly jobs: JobsProgram;
readonly stake: StakeProgram;
readonly merkleDistributor: MerkleDistributorProgram;
readonly solana: SolanaService;
readonly nos: TokenService;
readonly api: NosanaApi | undefined;
readonly ipfs: ReturnType<typeof createIpfsClient>;
readonly authorization: NosanaAuthorization;
readonly logger: Logger;
/**
* The wallet. Must be a Wallet (supports both message and transaction signing).
* Set this property directly to configure the wallet.
*
* @example
* ```ts
* import { createNosanaClient, NosanaNetwork } from '@nosana/kit';
*
* const client = createNosanaClient(NosanaNetwork.MAINNET);
* client.wallet = myWallet;
* ```
*/
wallet: Wallet | undefined;
}
/**
* Creates a new Nosana client instance.
*
*
* @param network - The network to connect to (default: MAINNET)
* @param customConfig - Optional custom configuration to override defaults
* @returns A Nosana client instance with all services and programs
*
* @example
* ```ts
* import { createNosanaClient, NosanaNetwork } from '@nosana/kit';
*
* const client = createNosanaClient(NosanaNetwork.MAINNET);
* client.wallet = myWallet;
* ```
*/
export declare function createNosanaClient(network?: NosanaNetwork, customConfig?: PartialClientConfig): NosanaClient;