/**
* This file and any referenced files were automatically generated by @hyperweb/telescope@1.17.4
* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
* and run the transpile command or npm scripts command that is used to regenerate this bundle.
*/
import { HttpEndpoint } from "@interchainjs/types";
import { BinaryReader, BinaryWriter } from "./binary";
import { Rpc } from "./helpers";
import { TelescopeGeneratedCodec, DeliverTxResponse, StdFee } from "./types";
import { ISigningClient } from "@interchainjs/cosmos";
export interface QueryBuilderOptions<TReq, TRes> {
    encode: (request: TReq, writer?: BinaryWriter) => BinaryWriter;
    decode: (input: BinaryReader | Uint8Array, length?: number) => TRes;
    service: string;
    method: string;
    deps?: TelescopeGeneratedCodec<any, any, any>[];
}
export declare function buildQuery<TReq, TRes>(opts: QueryBuilderOptions<TReq, TRes>): (client: EndpointOrRpc, request: TReq) => Promise<TRes>;
export interface ITxArgs<TMsg> {
    signerAddress: string;
    message: TMsg | TMsg[];
    fee: StdFee | 'auto';
    memo: string;
}
export interface TxBuilderOptions {
    msg: TelescopeGeneratedCodec<any, any, any>;
}
export declare function buildTx<TMsg>(opts: TxBuilderOptions): (client: ISigningClient, signerAddress: string, message: TMsg | TMsg[], fee: StdFee | "auto", memo: string) => Promise<DeliverTxResponse>;
export interface Encoder {
    typeUrl: string;
    fromPartial: (data: any) => any;
    encode: (data: any) => Uint8Array;
}
export interface AminoConverter {
    typeUrl: string;
    aminoType: string;
    fromAmino: (data: any) => any;
    toAmino: (data: any) => any;
}
export type EndpointOrRpc = string | HttpEndpoint | Rpc;
