import { Rpc } from "../../../helpers";
import { QueryClient } from "@cosmjs/stargate";
import { QueryTunnelsRequest, QueryTunnelsResponse, QueryTunnelRequest, QueryTunnelResponse, QueryDepositsRequest, QueryDepositsResponse, QueryDepositRequest, QueryDepositResponse, QueryPacketsRequest, QueryPacketsResponse, QueryPacketRequest, QueryPacketResponse, QueryTotalFeesRequest, QueryTotalFeesResponse, QueryParamsRequest, QueryParamsResponse } from "./query";
/** Query service defines the gRPC querier service. */
export interface Query {
    /** Tunnels is a RPC method that returns all tunnels. */
    tunnels(request: QueryTunnelsRequest): Promise<QueryTunnelsResponse>;
    /** Tunnel is a RPC method that returns a tunnel by its ID. */
    tunnel(request: QueryTunnelRequest): Promise<QueryTunnelResponse>;
    /** Deposits queries all deposits of a single tunnel. */
    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
    /** Deposit queries single deposit information based tunnelID, depositAddr. */
    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
    /** Packets is a RPC method that returns all packets of a tunnel. */
    packets(request: QueryPacketsRequest): Promise<QueryPacketsResponse>;
    /** Packet is a RPC method that returns a packet by its tunnel ID and sequence. */
    packet(request: QueryPacketRequest): Promise<QueryPacketResponse>;
    /** TotalFees is a RPC method that returns the total fees collected by the tunnel */
    totalFees(request?: QueryTotalFeesRequest): Promise<QueryTotalFeesResponse>;
    /** Params is a RPC method that returns all parameters of the module. */
    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
}
export declare class QueryClientImpl implements Query {
    private readonly rpc;
    constructor(rpc: Rpc);
    tunnels(request: QueryTunnelsRequest): Promise<QueryTunnelsResponse>;
    tunnel(request: QueryTunnelRequest): Promise<QueryTunnelResponse>;
    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
    packets(request: QueryPacketsRequest): Promise<QueryPacketsResponse>;
    packet(request: QueryPacketRequest): Promise<QueryPacketResponse>;
    totalFees(request?: QueryTotalFeesRequest): Promise<QueryTotalFeesResponse>;
    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
}
export declare const createRpcQueryExtension: (base: QueryClient) => {
    tunnels(request: QueryTunnelsRequest): Promise<QueryTunnelsResponse>;
    tunnel(request: QueryTunnelRequest): Promise<QueryTunnelResponse>;
    deposits(request: QueryDepositsRequest): Promise<QueryDepositsResponse>;
    deposit(request: QueryDepositRequest): Promise<QueryDepositResponse>;
    packets(request: QueryPacketsRequest): Promise<QueryPacketsResponse>;
    packet(request: QueryPacketRequest): Promise<QueryPacketResponse>;
    totalFees(request?: QueryTotalFeesRequest): Promise<QueryTotalFeesResponse>;
    params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
};
