import { Registry } from "@cosmjs/proto-signing";
import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
import { Account } from "./accounts";
import { StargateClient } from "./stargateclient";
import { AminoMsg } from "@cosmjs/amino";
import { OfflineAminoSigner } from "../amino/signer";
export interface SignerData {
    readonly accountNumber: number;
    readonly sequence: number;
    readonly chainId: string;
}
export interface SequenceResponse {
    readonly accountNumber: number;
    readonly sequence: number;
}
export interface ArbitraryVerifyData {
    type: string;
    signer: string;
    data: string;
    pubkey: string;
    signature: string;
}
/**
 * See ADR-036
 */
export interface MsgSignData extends AminoMsg {
    readonly type: "sign/MsgSignData";
    readonly value: {
        /** Bech32 account address */
        signer: string;
        /** Base64 encoded data */
        data: string;
    };
}
export declare function isMsgSignData(msg: AminoMsg): msg is MsgSignData;
export declare class SigningAminoStargateClient extends StargateClient {
    private readonly signer;
    private static _endpoint;
    static connectWithSigner(endpoint: string, signer: OfflineAminoSigner, registry: Registry): Promise<SigningAminoStargateClient>;
    protected constructor(tmClient: Tendermint34Client | undefined, signer: OfflineAminoSigner);
    experimentalAdr36Sign(signerAddress: string, data: Uint8Array | Uint8Array[]): Promise<ArbitraryVerifyData>;
    static experimentalAdr36Verify(data: ArbitraryVerifyData, checkMsg: string): Promise<boolean>;
    /**
   * 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 toAccAddress;
    getAccount(address: string): Promise<Account | undefined>;
}
