import { IEventClient } from '@interchainjs/types'; import { AccountNotification, BlockNotification, LogsNotification, ProgramNotification, RootNotification, SignatureNotification, SlotNotification, SlotsUpdatesNotification, VoteNotification } from './responses/events'; export type CommitmentLevel = 'processed' | 'confirmed' | 'finalized'; export interface AccountSubscribeOptions { readonly commitment?: CommitmentLevel; readonly encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed'; readonly dataSlice?: { readonly offset: number; readonly length: number; }; } export interface ProgramSubscribeOptions { readonly commitment?: CommitmentLevel; readonly encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed'; readonly filters?: ReadonlyArray<{ readonly dataSize?: number; readonly memcmp?: { readonly offset: number; readonly bytes: string; }; }>; } export type LogsSubscribeFilter = 'all' | { readonly mentions: readonly string[]; } | { readonly filter: 'all'; }; export interface LogsSubscribeOptions { readonly commitment?: CommitmentLevel; } export interface SignatureSubscribeOptions { readonly commitment?: CommitmentLevel; readonly enableReceivedNotification?: boolean; } export interface BlockSubscribeFilter { readonly mentionsAccountOrProgram: string | { toString(): string; }; } export interface BlockSubscribeOptions { readonly commitment?: CommitmentLevel; readonly encoding?: 'json' | 'jsonParsed' | 'base64' | 'base58'; readonly transactionDetails?: 'full' | 'signatures' | 'none'; readonly maxSupportedTransactionVersion?: number; readonly showRewards?: boolean; } export interface SolanaSubscription extends AsyncIterable { readonly id: string; readonly method: string; unsubscribe(): Promise; } export interface ISolanaEventClient extends IEventClient { subscribeToAccount(account: string | { toString(): string; }, options?: AccountSubscribeOptions): Promise>; subscribeToProgram(programId: string | { toString(): string; }, options?: ProgramSubscribeOptions): Promise>; subscribeToLogs(filter: LogsSubscribeFilter, options?: LogsSubscribeOptions): Promise>; subscribeToBlock(filter: BlockSubscribeFilter, options?: BlockSubscribeOptions): Promise>; subscribeToSlot(): Promise>; subscribeToRoot(): Promise>; subscribeToSignature(signature: string, options?: SignatureSubscribeOptions): Promise>; subscribeToSlotsUpdates(): Promise>; subscribeToVote(): Promise>; disconnect(): Promise; }