import { SignerWalletAdapterProps, MessageSignerWalletAdapterProps } from '@solana/wallet-adapter-base/lib/types/signer'; import { PublicKey, Transaction, VersionedTransaction, Keypair } from '@solana/web3.js'; import { TokenSigner, AccountAddress, PublicKey as PublicKey$1, TokenSignerResult, AuthenticationFacadeFactory, Authenticator, AuthenticationFacade, AuthV2Api, BlockchainSdk, BlockchainSdkFactory, Config } from '@dialectlabs/sdk'; interface DialectSolanaWalletAdapter { publicKey?: PublicKey; signTransaction?: SignerWalletAdapterProps['signTransaction']; signAllTransactions?: SignerWalletAdapterProps['signAllTransactions']; signMessage?: MessageSignerWalletAdapterProps['signMessage']; diffieHellman?: MessageEncryptionWalletAdapterProps['diffieHellman']; } interface MessageEncryptionWalletAdapterProps { diffieHellman(publicKey: Uint8Array): Promise<{ publicKey: Uint8Array; secretKey: Uint8Array; }>; } declare class DialectSolanaWalletAdapterWrapper implements DialectSolanaWalletAdapter { private readonly delegate; constructor(delegate: DialectSolanaWalletAdapter); get publicKey(): PublicKey; get canEncrypt(): boolean; static create(adapter: DialectSolanaWalletAdapter): DialectSolanaWalletAdapterWrapper; signTransaction(transaction: T): Promise; signAllTransactions(transactions: T[]): Promise; signMessage(message: Uint8Array): Promise; diffieHellman(): Promise<{ publicKey: Uint8Array; secretKey: Uint8Array; }>; canSignMessage(): boolean; canSignTransaction(): boolean; } declare class NodeDialectSolanaWalletAdapter implements DialectSolanaWalletAdapter { private readonly keypair; constructor(keypair: Keypair); get publicKey(): PublicKey; static create(keypair?: Keypair): NodeDialectSolanaWalletAdapter; signTransaction(transaction: T): Promise; signAllTransactions(transactions: T[]): Promise; signMessage(message: Uint8Array): Promise; diffieHellman(publicKey: Uint8Array): Promise<{ publicKey: Uint8Array; secretKey: Uint8Array; }>; } declare const SOLANA_ED25519_TOKEN_SIGNER_ALG: string; declare const SOLANA_ED25519_TOKEN_SIGNER_ALG_BACKWARD_COMPATIBLE = "ed25519"; declare abstract class SolanaEd25519TokenSigner implements TokenSigner { readonly alg: string; abstract subject: AccountAddress; abstract subjectPublicKey: PublicKey$1; abstract sign(payload: Uint8Array): Promise; } declare class DialectWalletAdapterSolanaEd25519TokenSigner extends SolanaEd25519TokenSigner { readonly dialectWalletAdapter: DialectSolanaWalletAdapterWrapper; constructor(dialectWalletAdapter: DialectSolanaWalletAdapterWrapper); get subject(): AccountAddress; get subjectPublicKey(): PublicKey$1; sign(payload: Uint8Array): Promise; } declare class SolanaEd25519AuthenticationFacadeFactory extends AuthenticationFacadeFactory { private readonly tokenSigner; constructor(tokenSigner: SolanaEd25519TokenSigner); static createAuthenticator(): Authenticator; get(): AuthenticationFacade; } declare abstract class SolanaTxTokenSigner implements TokenSigner { readonly alg: string; abstract subject: AccountAddress; abstract subjectPublicKey: PublicKey$1; abstract sign(payload: Uint8Array): Promise; } declare class SolanaTxAuthenticationFacadeFactory extends AuthenticationFacadeFactory { private readonly tokenSigner; constructor(tokenSigner: SolanaTxTokenSigner); static createAuthenticator(): Authenticator; get(): AuthenticationFacade; } declare class SolanaSignMessageV2AuthenticationFacadeFactory extends AuthenticationFacadeFactory { private readonly tokenSigner; private readonly api; constructor(tokenSigner: TokenSigner, api: AuthV2Api); static createAuthenticator(api: AuthV2Api): Authenticator; get(): AuthenticationFacade; } declare class SolanaSignTxV2AuthenticationFacadeFactory extends AuthenticationFacadeFactory { private readonly tokenSigner; private readonly api; constructor(tokenSigner: SolanaEd25519TokenSigner, api: AuthV2Api); static createAuthenticator(api: AuthV2Api): Authenticator; get(): AuthenticationFacade; } interface SolanaConfigProps { wallet: DialectSolanaWalletAdapter; } interface SolanaConfig extends SolanaConfigProps { wallet: DialectSolanaWalletAdapterWrapper; } type SolanaNetwork = 'mainnet-beta' | 'devnet' | 'localnet'; interface Solana extends BlockchainSdk { readonly config: SolanaConfig; } declare class SolanaSdkFactory implements BlockchainSdkFactory { readonly solanaConfigProps: SolanaConfigProps; private constructor(); static create(props: SolanaConfigProps): SolanaSdkFactory; private static logConfiguration; create(config: Config): Solana; createAuthenticationFacadeFactory(solanaConfig: SolanaConfig, config: Config): SolanaEd25519AuthenticationFacadeFactory | SolanaTxAuthenticationFacadeFactory | SolanaSignMessageV2AuthenticationFacadeFactory | SolanaSignTxV2AuthenticationFacadeFactory; private initializeSolanaConfig; } declare const DIALECT_BLOCKCHAIN_SDK_TYPE_SOLANA = "solana"; export { DIALECT_BLOCKCHAIN_SDK_TYPE_SOLANA, type DialectSolanaWalletAdapter, DialectSolanaWalletAdapterWrapper, DialectWalletAdapterSolanaEd25519TokenSigner, type MessageEncryptionWalletAdapterProps, NodeDialectSolanaWalletAdapter, SOLANA_ED25519_TOKEN_SIGNER_ALG, SOLANA_ED25519_TOKEN_SIGNER_ALG_BACKWARD_COMPATIBLE, type Solana, type SolanaConfig, type SolanaConfigProps, SolanaEd25519AuthenticationFacadeFactory, SolanaEd25519TokenSigner, type SolanaNetwork, SolanaSdkFactory, SolanaTxAuthenticationFacadeFactory };