import { Params, ParamsAmino, ParamsSDKType } from "./params";
import { Tunnel, TunnelAmino, TunnelSDKType, Deposit, DepositAmino, DepositSDKType, TotalFees, TotalFeesAmino, TotalFeesSDKType } from "./tunnel";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** GenesisState represents the initial state of the blockchain. */
export interface GenesisState {
    /** params is all parameters of the module. */
    params: Params;
    /** tunnel_count is the number of tunnels. */
    tunnelCount: bigint;
    /** tunnels is the list of tunnels. */
    tunnels: Tunnel[];
    /** deposits is the list of deposits. */
    deposits: Deposit[];
    /** total_fees is the type for the total fees collected by the tunnel */
    totalFees: TotalFees;
}
export interface GenesisStateProtoMsg {
    typeUrl: "/band.tunnel.v1beta1.GenesisState";
    value: Uint8Array;
}
/** GenesisState represents the initial state of the blockchain. */
export interface GenesisStateAmino {
    /** params is all parameters of the module. */
    params?: ParamsAmino;
    /** tunnel_count is the number of tunnels. */
    tunnel_count?: string;
    /** tunnels is the list of tunnels. */
    tunnels?: TunnelAmino[];
    /** deposits is the list of deposits. */
    deposits?: DepositAmino[];
    /** total_fees is the type for the total fees collected by the tunnel */
    total_fees?: TotalFeesAmino;
}
export interface GenesisStateAminoMsg {
    type: "/band.tunnel.v1beta1.GenesisState";
    value: GenesisStateAmino;
}
/** GenesisState represents the initial state of the blockchain. */
export interface GenesisStateSDKType {
    params: ParamsSDKType;
    tunnel_count: bigint;
    tunnels: TunnelSDKType[];
    deposits: DepositSDKType[];
    total_fees: TotalFeesSDKType;
}
export declare const GenesisState: {
    typeUrl: string;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromPartial(object: Partial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
};
