import { EncodeObject, OfflineDirectSigner, Registry } from "@cosmjs/proto-signing";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { SignDoc, TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
import { StdFee } from ".";
import { Account } from "./accounts";
import { BroadcastTxResponse, StargateClient } from "./stargateclient";
export interface SignerData {
    readonly accountNumber: number;
    readonly sequence: number;
    readonly chainId: string;
}
export interface SequenceResponse {
    readonly accountNumber: number;
    readonly sequence: number;
}
export interface TxRawExt {
    readonly txRaw: TxRaw;
    readonly signature: string;
}
export declare class SigningStargateClient extends StargateClient {
    private readonly signer;
    private readonly registry;
    private chainId;
    private static _endpoint;
    private getSigner;
    static connectWithSigner(endpoint: string, signer: OfflineDirectSigner | undefined, registry: Registry): Promise<SigningStargateClient>;
    protected constructor(tmClient: Tendermint34Client | undefined, signer: OfflineDirectSigner | undefined, registry: Registry);
    signAndBroadcast(signerAddress: string, messages: readonly EncodeObject[], fee: StdFee, memo?: string): Promise<BroadcastTxResponse>;
    static makeSignDocForSend(signerAddress: string, pubkeyStr: string, messages: readonly EncodeObject[], fee: StdFee, memo: string, serverUrl: string, chainId: string, registry: Registry): Promise<SignDoc>;
    sign(signerAddress: string, messages: readonly EncodeObject[], fee: StdFee, memo: string, explicitSignerData?: SignerData): Promise<TxRaw>;
    getChainId(): Promise<string>;
    /**
   * Takes a bech32 encoded address and returns the data part. The prefix is ignored and discarded.
   * This is called AccAddress in Cosmos SDK, which is basically an alias for raw binary data.
   * The result is typically 20 bytes long but not restricted to that.
   */
    private static toAccAddress;
    static getAccount(address: string): Promise<Account | undefined>;
    static getSequence(address: string): Promise<SequenceResponse>;
    private static makeSignerInfos;
    private static makeAuthInfoBytes;
    private signDirect;
    signDirectForSignDoc(signerAddress: string, signDoc: SignDoc): Promise<TxRawExt>;
}
