import { ICryptoBytes, StdFee, Message, IWallet, StdSignDoc } from '@interchainjs/types'; import { TxBody, SignerInfo, SignDoc, TxResponse } from '@interchainjs/cosmos-types'; import { TxResponse as QueryTxResponse } from '../types'; import { CosmosSignerConfig, CosmosBroadcastOptions, CosmosBroadcastResponse, CosmosSignedTransaction, OfflineSigner, AccountData, ICosmosSigner, CosmosSignArgs, DirectSignResponse, AminoSignResponse, DocOptions } from './types'; import { ISigningClient, Encoder } from '../types/signing-client'; import { SimulationResponse } from '@interchainjs/cosmos-types'; /** * Base implementation for Cosmos signers * Provides common functionality for both Amino and Direct signers */ export declare abstract class BaseCosmosSigner implements ICosmosSigner, ISigningClient { protected config: CosmosSignerConfig; protected auth: OfflineSigner | IWallet; protected encoders: Encoder[]; constructor(auth: OfflineSigner | IWallet, config: CosmosSignerConfig); get queryClient(): import("../types").ICosmosQueryClient; getAccounts(): Promise; signArbitrary(data: Uint8Array, index?: number): Promise; abstract sign(args: CosmosSignArgs): Promise; broadcast(signed: CosmosSignedTransaction, options?: CosmosBroadcastOptions): Promise; /** * Sign and broadcast with function overloading * Supports both base class signature and ISigningClient signature */ signAndBroadcast(args: CosmosSignArgs, options?: CosmosBroadcastOptions): Promise; signAndBroadcast(signerAddress: string, messages: readonly Message[], fee: StdFee | 'auto', memo?: string): Promise; broadcastArbitrary(data: Uint8Array, options?: CosmosBroadcastOptions): Promise; getAddresses(): Promise; getChainId(): Promise; getAccountNumber(address: string, opts?: DocOptions): Promise; getSequence(address: string, opts?: DocOptions): Promise; private waitForTransaction; getEncoder(typeUrl: string): Encoder; simulateByTxBody(txBody: TxBody, signerInfos: SignerInfo[]): Promise; isIWallet(): boolean; /** * Check if this signer is an offline signer */ isOfflineSigner(): boolean; /** * Check if this signer is an offline amino signer */ isOfflineAminoSigner(): boolean; /** * Check if this signer is an offline direct signer */ isOfflineDirectSigner(): boolean; /** * Sign using offline direct signer */ signDirect(signerAddress: string, signDoc: SignDoc): Promise; /** * Sign using offline amino signer */ signAmino(signerAddress: string, signDoc: StdSignDoc): Promise; /** * Register encoders */ addEncoders(encoders: Encoder[]): void; /** * Convert QueryTxResponse to TxResponse * Transforms transaction query response into standard TxResponse format */ protected convertToTxResponse(response: QueryTxResponse): TxResponse | null; }