import { EncodeObject, OfflineDirectSigner, Registry, GeneratedType } from "@cosmjs/proto-signing";
import { CometClient, HttpEndpoint } from "@cosmjs/tendermint-rpc";
import { SignDoc, TxRaw, Fee } from "cosmjs-types/cosmos/tx/v1beta1/tx";
import { Account } from "./accounts";
import { DeliverTxResponse, StargateClient, StargateClientOptions } from "./StargateClient";
export declare const defaultRegistryTypes: ReadonlyArray<[string, GeneratedType]>;
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 interface SigningStargateClientOptions extends StargateClientOptions {
    readonly registry?: Registry;
}
export declare class SigningStargateClient extends StargateClient {
    readonly registry: Registry;
    private readonly signer;
    private static _endpoint;
    static connectWithSigner(endpoint: string | HttpEndpoint, signer: OfflineDirectSigner, options?: SigningStargateClientOptions): Promise<SigningStargateClient>;
    static createWithSigner(cometClient: CometClient, signer: OfflineDirectSigner, options?: SigningStargateClientOptions): Promise<SigningStargateClient>;
    protected constructor(cometClient: CometClient | undefined, signer: OfflineDirectSigner, options: SigningStargateClientOptions);
    signAndBroadcast(signerAddress: string, messages: readonly EncodeObject[], fee: Fee, memo?: string): Promise<DeliverTxResponse>;
    static makeSignDocForSend(signerAddress: string, pubkeyStr: string, messages: readonly EncodeObject[], fee: Fee, memo: string, serverUrl: string, chainId: string, registry: Registry): Promise<SignDoc>;
    sign(signerAddress: string, messages: readonly EncodeObject[], fee: Fee, memo: string, explicitSignerData?: SignerData): Promise<TxRaw>;
    private signDirect;
    signDirectForSignDoc(signerAddress: string, signDoc: SignDoc): Promise<TxRawExt>;
    static getSequence(address: string): Promise<SequenceResponse>;
    static getAccount(address: string): Promise<Account | null>;
}
