import { PageRequest, PageRequestAmino, PageRequestSDKType, PageResponse, PageResponseAmino, PageResponseSDKType } from "../../../cosmos/base/query/v1beta1/pagination";
import { Vault, VaultAmino, VaultSDKType, LockResponse, LockResponseAmino, LockResponseSDKType, Stake, StakeAmino, StakeSDKType } from "./types";
import { Params, ParamsAmino, ParamsSDKType } from "./genesis";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** QueryVaultsRequest represents the request type for the Query/Vaults RPC method. */
export interface QueryVaultsRequest {
    /** pagination defines optional pagination parameters. */
    pagination?: PageRequest;
}
export interface QueryVaultsRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryVaultsRequest";
    value: Uint8Array;
}
/** QueryVaultsRequest represents the request type for the Query/Vaults RPC method. */
export interface QueryVaultsRequestAmino {
    /** pagination defines optional pagination parameters. */
    pagination?: PageRequestAmino;
}
export interface QueryVaultsRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryVaultsRequest";
    value: QueryVaultsRequestAmino;
}
/** QueryVaultsRequest represents the request type for the Query/Vaults RPC method. */
export interface QueryVaultsRequestSDKType {
    pagination?: PageRequestSDKType;
}
/** QueryVaultsResponse represents the response type for the Query/Vaults RPC method. */
export interface QueryVaultsResponse {
    /** vaults is a list of vaults. */
    vaults: Vault[];
    /** pagination defines pagination parameters in the response. */
    pagination?: PageResponse;
}
export interface QueryVaultsResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryVaultsResponse";
    value: Uint8Array;
}
/** QueryVaultsResponse represents the response type for the Query/Vaults RPC method. */
export interface QueryVaultsResponseAmino {
    /** vaults is a list of vaults. */
    vaults?: VaultAmino[];
    /** pagination defines pagination parameters in the response. */
    pagination?: PageResponseAmino;
}
export interface QueryVaultsResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryVaultsResponse";
    value: QueryVaultsResponseAmino;
}
/** QueryVaultsResponse represents the response type for the Query/Vaults RPC method. */
export interface QueryVaultsResponseSDKType {
    vaults: VaultSDKType[];
    pagination?: PageResponseSDKType;
}
/** QueryVaultRequest represents the request type for the Query/Vault RPC method. */
export interface QueryVaultRequest {
    /** key is the key of the vault that want to query. */
    key: string;
}
export interface QueryVaultRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryVaultRequest";
    value: Uint8Array;
}
/** QueryVaultRequest represents the request type for the Query/Vault RPC method. */
export interface QueryVaultRequestAmino {
    /** key is the key of the vault that want to query. */
    key?: string;
}
export interface QueryVaultRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryVaultRequest";
    value: QueryVaultRequestAmino;
}
/** QueryVaultRequest represents the request type for the Query/Vault RPC method. */
export interface QueryVaultRequestSDKType {
    key: string;
}
/** QueryVaultResponse represents the response type for the Query/Vault RPC method. */
export interface QueryVaultResponse {
    /** vault is a vault information. */
    vault: Vault;
}
export interface QueryVaultResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryVaultResponse";
    value: Uint8Array;
}
/** QueryVaultResponse represents the response type for the Query/Vault RPC method. */
export interface QueryVaultResponseAmino {
    /** vault is a vault information. */
    vault?: VaultAmino;
}
export interface QueryVaultResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryVaultResponse";
    value: QueryVaultResponseAmino;
}
/** QueryVaultResponse represents the response type for the Query/Vault RPC method. */
export interface QueryVaultResponseSDKType {
    vault: VaultSDKType;
}
/** QueryLocksRequest represents the request type for the Query/Locks RPC method. */
export interface QueryLocksRequest {
    /** staker_address is the target address to query locks. */
    stakerAddress: string;
    /** pagination defines optional pagination parameters. */
    pagination?: PageRequest;
}
export interface QueryLocksRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryLocksRequest";
    value: Uint8Array;
}
/** QueryLocksRequest represents the request type for the Query/Locks RPC method. */
export interface QueryLocksRequestAmino {
    /** staker_address is the target address to query locks. */
    staker_address?: string;
    /** pagination defines optional pagination parameters. */
    pagination?: PageRequestAmino;
}
export interface QueryLocksRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryLocksRequest";
    value: QueryLocksRequestAmino;
}
/** QueryLocksRequest represents the request type for the Query/Locks RPC method. */
export interface QueryLocksRequestSDKType {
    staker_address: string;
    pagination?: PageRequestSDKType;
}
/** QueryLocksResponse represents the response type for the Query/Locks RPC method. */
export interface QueryLocksResponse {
    /** locks is a list of locks of the staker. */
    locks: LockResponse[];
    /** pagination defines pagination parameters in the response. */
    pagination?: PageResponse;
}
export interface QueryLocksResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryLocksResponse";
    value: Uint8Array;
}
/** QueryLocksResponse represents the response type for the Query/Locks RPC method. */
export interface QueryLocksResponseAmino {
    /** locks is a list of locks of the staker. */
    locks?: LockResponseAmino[];
    /** pagination defines pagination parameters in the response. */
    pagination?: PageResponseAmino;
}
export interface QueryLocksResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryLocksResponse";
    value: QueryLocksResponseAmino;
}
/** QueryLocksResponse represents the response type for the Query/Locks RPC method. */
export interface QueryLocksResponseSDKType {
    locks: LockResponseSDKType[];
    pagination?: PageResponseSDKType;
}
/** QueryLockRequest represents the request type for the Query/Lock RPC method. */
export interface QueryLockRequest {
    /** staker_address is the target address to query lock. */
    stakerAddress: string;
    /** key is the key of target vault to query lock. */
    key: string;
}
export interface QueryLockRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryLockRequest";
    value: Uint8Array;
}
/** QueryLockRequest represents the request type for the Query/Lock RPC method. */
export interface QueryLockRequestAmino {
    /** staker_address is the target address to query lock. */
    staker_address?: string;
    /** key is the key of target vault to query lock. */
    key?: string;
}
export interface QueryLockRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryLockRequest";
    value: QueryLockRequestAmino;
}
/** QueryLockRequest represents the request type for the Query/Lock RPC method. */
export interface QueryLockRequestSDKType {
    staker_address: string;
    key: string;
}
/** QueryLockResponse represents the response type for the Query/Lock RPC method. */
export interface QueryLockResponse {
    /** lock is the lock of the staker and the vault. */
    lock: LockResponse;
}
export interface QueryLockResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryLockResponse";
    value: Uint8Array;
}
/** QueryLockResponse represents the response type for the Query/Lock RPC method. */
export interface QueryLockResponseAmino {
    /** lock is the lock of the staker and the vault. */
    lock?: LockResponseAmino;
}
export interface QueryLockResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryLockResponse";
    value: QueryLockResponseAmino;
}
/** QueryLockResponse represents the response type for the Query/Lock RPC method. */
export interface QueryLockResponseSDKType {
    lock: LockResponseSDKType;
}
/** QueryStakeRequest represents the request type for the Query/Stake RPC method. */
export interface QueryStakeRequest {
    /** staker_address is the target address used to query the stake. */
    stakerAddress: string;
}
export interface QueryStakeRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryStakeRequest";
    value: Uint8Array;
}
/** QueryStakeRequest represents the request type for the Query/Stake RPC method. */
export interface QueryStakeRequestAmino {
    /** staker_address is the target address used to query the stake. */
    staker_address?: string;
}
export interface QueryStakeRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryStakeRequest";
    value: QueryStakeRequestAmino;
}
/** QueryStakeRequest represents the request type for the Query/Stake RPC method. */
export interface QueryStakeRequestSDKType {
    staker_address: string;
}
/** QueryStakeResponse represents the response type for the Query/Stake RPC method. */
export interface QueryStakeResponse {
    /** stake is a stake information of the staker. */
    stake: Stake;
}
export interface QueryStakeResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryStakeResponse";
    value: Uint8Array;
}
/** QueryStakeResponse represents the response type for the Query/Stake RPC method. */
export interface QueryStakeResponseAmino {
    /** stake is a stake information of the staker. */
    stake?: StakeAmino;
}
export interface QueryStakeResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryStakeResponse";
    value: QueryStakeResponseAmino;
}
/** QueryStakeResponse represents the response type for the Query/Stake RPC method. */
export interface QueryStakeResponseSDKType {
    stake: StakeSDKType;
}
/** QueryParamsRequest is the request type for the Query/Params RPC method. */
export interface QueryParamsRequest {
}
export interface QueryParamsRequestProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryParamsRequest";
    value: Uint8Array;
}
/** QueryParamsRequest is the request type for the Query/Params RPC method. */
export interface QueryParamsRequestAmino {
}
export interface QueryParamsRequestAminoMsg {
    type: "/band.restake.v1beta1.QueryParamsRequest";
    value: QueryParamsRequestAmino;
}
/** QueryParamsRequest is the request type for the Query/Params RPC method. */
export interface QueryParamsRequestSDKType {
}
/** QueryParamsResponse is the response type for the Query/Params RPC method. */
export interface QueryParamsResponse {
    /** params are the parameters of the module. */
    params: Params;
}
export interface QueryParamsResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.QueryParamsResponse";
    value: Uint8Array;
}
/** QueryParamsResponse is the response type for the Query/Params RPC method. */
export interface QueryParamsResponseAmino {
    /** params are the parameters of the module. */
    params?: ParamsAmino;
}
export interface QueryParamsResponseAminoMsg {
    type: "/band.restake.v1beta1.QueryParamsResponse";
    value: QueryParamsResponseAmino;
}
/** QueryParamsResponse is the response type for the Query/Params RPC method. */
export interface QueryParamsResponseSDKType {
    params: ParamsSDKType;
}
export declare const QueryVaultsRequest: {
    typeUrl: string;
    encode(message: QueryVaultsRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryVaultsRequest;
    fromPartial(object: Partial<QueryVaultsRequest>): QueryVaultsRequest;
    fromAmino(object: QueryVaultsRequestAmino): QueryVaultsRequest;
    toAmino(message: QueryVaultsRequest): QueryVaultsRequestAmino;
    fromAminoMsg(object: QueryVaultsRequestAminoMsg): QueryVaultsRequest;
    fromProtoMsg(message: QueryVaultsRequestProtoMsg): QueryVaultsRequest;
    toProto(message: QueryVaultsRequest): Uint8Array;
    toProtoMsg(message: QueryVaultsRequest): QueryVaultsRequestProtoMsg;
};
export declare const QueryVaultsResponse: {
    typeUrl: string;
    encode(message: QueryVaultsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryVaultsResponse;
    fromPartial(object: Partial<QueryVaultsResponse>): QueryVaultsResponse;
    fromAmino(object: QueryVaultsResponseAmino): QueryVaultsResponse;
    toAmino(message: QueryVaultsResponse): QueryVaultsResponseAmino;
    fromAminoMsg(object: QueryVaultsResponseAminoMsg): QueryVaultsResponse;
    fromProtoMsg(message: QueryVaultsResponseProtoMsg): QueryVaultsResponse;
    toProto(message: QueryVaultsResponse): Uint8Array;
    toProtoMsg(message: QueryVaultsResponse): QueryVaultsResponseProtoMsg;
};
export declare const QueryVaultRequest: {
    typeUrl: string;
    encode(message: QueryVaultRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryVaultRequest;
    fromPartial(object: Partial<QueryVaultRequest>): QueryVaultRequest;
    fromAmino(object: QueryVaultRequestAmino): QueryVaultRequest;
    toAmino(message: QueryVaultRequest): QueryVaultRequestAmino;
    fromAminoMsg(object: QueryVaultRequestAminoMsg): QueryVaultRequest;
    fromProtoMsg(message: QueryVaultRequestProtoMsg): QueryVaultRequest;
    toProto(message: QueryVaultRequest): Uint8Array;
    toProtoMsg(message: QueryVaultRequest): QueryVaultRequestProtoMsg;
};
export declare const QueryVaultResponse: {
    typeUrl: string;
    encode(message: QueryVaultResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryVaultResponse;
    fromPartial(object: Partial<QueryVaultResponse>): QueryVaultResponse;
    fromAmino(object: QueryVaultResponseAmino): QueryVaultResponse;
    toAmino(message: QueryVaultResponse): QueryVaultResponseAmino;
    fromAminoMsg(object: QueryVaultResponseAminoMsg): QueryVaultResponse;
    fromProtoMsg(message: QueryVaultResponseProtoMsg): QueryVaultResponse;
    toProto(message: QueryVaultResponse): Uint8Array;
    toProtoMsg(message: QueryVaultResponse): QueryVaultResponseProtoMsg;
};
export declare const QueryLocksRequest: {
    typeUrl: string;
    encode(message: QueryLocksRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryLocksRequest;
    fromPartial(object: Partial<QueryLocksRequest>): QueryLocksRequest;
    fromAmino(object: QueryLocksRequestAmino): QueryLocksRequest;
    toAmino(message: QueryLocksRequest): QueryLocksRequestAmino;
    fromAminoMsg(object: QueryLocksRequestAminoMsg): QueryLocksRequest;
    fromProtoMsg(message: QueryLocksRequestProtoMsg): QueryLocksRequest;
    toProto(message: QueryLocksRequest): Uint8Array;
    toProtoMsg(message: QueryLocksRequest): QueryLocksRequestProtoMsg;
};
export declare const QueryLocksResponse: {
    typeUrl: string;
    encode(message: QueryLocksResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryLocksResponse;
    fromPartial(object: Partial<QueryLocksResponse>): QueryLocksResponse;
    fromAmino(object: QueryLocksResponseAmino): QueryLocksResponse;
    toAmino(message: QueryLocksResponse): QueryLocksResponseAmino;
    fromAminoMsg(object: QueryLocksResponseAminoMsg): QueryLocksResponse;
    fromProtoMsg(message: QueryLocksResponseProtoMsg): QueryLocksResponse;
    toProto(message: QueryLocksResponse): Uint8Array;
    toProtoMsg(message: QueryLocksResponse): QueryLocksResponseProtoMsg;
};
export declare const QueryLockRequest: {
    typeUrl: string;
    encode(message: QueryLockRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryLockRequest;
    fromPartial(object: Partial<QueryLockRequest>): QueryLockRequest;
    fromAmino(object: QueryLockRequestAmino): QueryLockRequest;
    toAmino(message: QueryLockRequest): QueryLockRequestAmino;
    fromAminoMsg(object: QueryLockRequestAminoMsg): QueryLockRequest;
    fromProtoMsg(message: QueryLockRequestProtoMsg): QueryLockRequest;
    toProto(message: QueryLockRequest): Uint8Array;
    toProtoMsg(message: QueryLockRequest): QueryLockRequestProtoMsg;
};
export declare const QueryLockResponse: {
    typeUrl: string;
    encode(message: QueryLockResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryLockResponse;
    fromPartial(object: Partial<QueryLockResponse>): QueryLockResponse;
    fromAmino(object: QueryLockResponseAmino): QueryLockResponse;
    toAmino(message: QueryLockResponse): QueryLockResponseAmino;
    fromAminoMsg(object: QueryLockResponseAminoMsg): QueryLockResponse;
    fromProtoMsg(message: QueryLockResponseProtoMsg): QueryLockResponse;
    toProto(message: QueryLockResponse): Uint8Array;
    toProtoMsg(message: QueryLockResponse): QueryLockResponseProtoMsg;
};
export declare const QueryStakeRequest: {
    typeUrl: string;
    encode(message: QueryStakeRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryStakeRequest;
    fromPartial(object: Partial<QueryStakeRequest>): QueryStakeRequest;
    fromAmino(object: QueryStakeRequestAmino): QueryStakeRequest;
    toAmino(message: QueryStakeRequest): QueryStakeRequestAmino;
    fromAminoMsg(object: QueryStakeRequestAminoMsg): QueryStakeRequest;
    fromProtoMsg(message: QueryStakeRequestProtoMsg): QueryStakeRequest;
    toProto(message: QueryStakeRequest): Uint8Array;
    toProtoMsg(message: QueryStakeRequest): QueryStakeRequestProtoMsg;
};
export declare const QueryStakeResponse: {
    typeUrl: string;
    encode(message: QueryStakeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryStakeResponse;
    fromPartial(object: Partial<QueryStakeResponse>): QueryStakeResponse;
    fromAmino(object: QueryStakeResponseAmino): QueryStakeResponse;
    toAmino(message: QueryStakeResponse): QueryStakeResponseAmino;
    fromAminoMsg(object: QueryStakeResponseAminoMsg): QueryStakeResponse;
    fromProtoMsg(message: QueryStakeResponseProtoMsg): QueryStakeResponse;
    toProto(message: QueryStakeResponse): Uint8Array;
    toProtoMsg(message: QueryStakeResponse): QueryStakeResponseProtoMsg;
};
export declare const QueryParamsRequest: {
    typeUrl: string;
    encode(_: QueryParamsRequest, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsRequest;
    fromPartial(_: Partial<QueryParamsRequest>): QueryParamsRequest;
    fromAmino(_: QueryParamsRequestAmino): QueryParamsRequest;
    toAmino(_: QueryParamsRequest): QueryParamsRequestAmino;
    fromAminoMsg(object: QueryParamsRequestAminoMsg): QueryParamsRequest;
    fromProtoMsg(message: QueryParamsRequestProtoMsg): QueryParamsRequest;
    toProto(message: QueryParamsRequest): Uint8Array;
    toProtoMsg(message: QueryParamsRequest): QueryParamsRequestProtoMsg;
};
export declare const QueryParamsResponse: {
    typeUrl: string;
    encode(message: QueryParamsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): QueryParamsResponse;
    fromPartial(object: Partial<QueryParamsResponse>): QueryParamsResponse;
    fromAmino(object: QueryParamsResponseAmino): QueryParamsResponse;
    toAmino(message: QueryParamsResponse): QueryParamsResponseAmino;
    fromAminoMsg(object: QueryParamsResponseAminoMsg): QueryParamsResponse;
    fromProtoMsg(message: QueryParamsResponseProtoMsg): QueryParamsResponse;
    toProto(message: QueryParamsResponse): Uint8Array;
    toProtoMsg(message: QueryParamsResponse): QueryParamsResponseProtoMsg;
};
