import { kyve, cosmos } from "@kyve/proto";
import kyveQueryAccount = kyve.query.v1beta1.kyveQueryAccount;
import kyveQueryAccountRes = kyve.query.v1beta1.kyveQueryAccountRes;
import kyveQueryBundles = kyve.query.v1beta1.kyveQueryBundles;
import kyveQueryBundlesRes = kyve.query.v1beta1.kyveQueryBundlesRes;
import kyveQueryPools = kyve.query.v1beta1.kyveQueryPools;
import kyveQueryPoolsRes = kyve.query.v1beta1.kyveQueryPoolsRes;
import kyveQueryStakersRes = kyve.query.v1beta1.kyveQueryStakersRes;
import kyveQueryStakers = kyve.query.v1beta1.kyveQueryStakers;
import kyveQueryDelegation = kyve.query.v1beta1.kyveQueryDelegation;
import kyveQueryDelegationRes = kyve.query.v1beta1.kyveQueryDelegationRes;
import kyveQueryParamsRes = kyve.query.v1beta1.kyveQueryParams;
import PageRequest = cosmos.registry.v1beta1.cosmosPaginationQuery.PageRequest;
import { AbstractKyveLCDClient } from "../../lcd-client.abstract";
declare type NestedPartial<T> = {
    [K in keyof T]?: T[K] extends Array<infer R> ? Array<NestedPartial<R>> : NestedPartial<T[K]>;
};
declare type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
declare type PaginationRequestType = {
    offset: string;
    limit: string;
    count_total: boolean;
    reverse: boolean;
    key: string;
};
declare type PaginationPartialRequestUtilType<T extends {
    pagination?: PageRequest;
}> = Overwrite<T, {
    pagination?: Partial<PaginationRequestType>;
}>;
declare type PaginationAllPartialRequestUtilType<T> = NestedPartial<Overwrite<T, {
    pagination?: {
        offset: string;
        limit: string;
        count_total: boolean;
        reverse: boolean;
        key: string;
    };
}>>;
declare type PaginationResponseTypeUtil<T> = Overwrite<T, {
    pagination?: {
        next_key: string;
        total: string;
    };
}>;
export declare class KyveRegistryLCDClient extends AbstractKyveLCDClient {
    constructor(restEndpoint: string);
    params(): Promise<kyveQueryParamsRes.QueryParamsResponse>;
    /** Pools **/
    pool(params: kyveQueryPools.QueryPoolRequest): Promise<kyveQueryPoolsRes.QueryPoolResponse>;
    pools(params?: PaginationAllPartialRequestUtilType<kyveQueryPools.QueryPoolsRequest>): Promise<PaginationResponseTypeUtil<kyveQueryPoolsRes.QueryPoolsResponse>>;
    /** end Pools **/
    /** Stakers **/
    stakers(params: PaginationPartialRequestUtilType<kyveQueryStakers.QueryStakersRequest>): Promise<PaginationResponseTypeUtil<kyveQueryStakersRes.QueryStakersResponse>>;
    staker(params: kyveQueryStakers.QueryStakerRequest): Promise<kyveQueryStakersRes.QueryStakerResponse>;
    stakersByPool(params: kyveQueryStakers.QueryStakersByPoolRequest): Promise<kyveQueryStakersRes.QueryStakersByPoolResponse>;
    /** end stakers **/
    /** Bundles **/
    finalizedBundle(params: kyveQueryBundles.QueryFinalizedBundleRequest): Promise<kyveQueryBundles.QueryFinalizedBundleResponse>;
    finalizedBundles(params: PaginationPartialRequestUtilType<kyveQueryBundles.QueryFinalizedBundlesRequest>): Promise<PaginationResponseTypeUtil<kyveQueryBundlesRes.QueryFinalizedBundlesResponse>>;
    currentVoteStatus(params: kyveQueryBundles.QueryCurrentVoteStatusRequest): Promise<kyveQueryBundlesRes.QueryCurrentVoteStatusResponse>;
    canValidate(params: kyveQueryBundles.QueryCanValidateRequest): Promise<kyveQueryBundles.QueryCanValidateResponse>;
    canPropose(params: kyveQueryBundles.QueryCanProposeRequest): Promise<kyveQueryBundles.QueryCanProposeResponse>;
    canVote(params: kyveQueryBundles.QueryCanVoteRequest): Promise<kyveQueryBundles.QueryCanVoteResponse>;
    /** end Bundles **/
    /** Delegations **/
    delegator(params: kyveQueryDelegation.QueryDelegatorRequest): Promise<kyveQueryDelegationRes.QueryDelegatorResponse>;
    delegatorsByStaker(params: PaginationPartialRequestUtilType<kyveQueryDelegation.QueryDelegatorsByStakerRequest>): Promise<PaginationResponseTypeUtil<kyveQueryDelegationRes.QueryDelegatorsByStakerResponse>>;
    stakersByDelegator(params: PaginationPartialRequestUtilType<kyveQueryDelegation.QueryStakersByDelegatorRequest>): Promise<PaginationResponseTypeUtil<kyveQueryDelegationRes.QueryStakersByDelegatorResponse>>;
    /** end Delegations **/
    /*** Account **/
    accountAssets(params: kyveQueryAccount.QueryAccountAssetsRequest): Promise<kyveQueryAccountRes.QueryAccountAssetsResponse>;
    accountDelegationUnbondings(params: PaginationPartialRequestUtilType<kyveQueryAccount.QueryAccountDelegationUnbondingsRequest>): Promise<PaginationResponseTypeUtil<kyveQueryAccountRes.QueryAccountDelegationUnbondingsResponse>>;
    accountFundedList(params: kyveQueryAccount.QueryAccountFundedListRequest): Promise<kyveQueryAccountRes.QueryAccountFundedListResponse>;
    accountRedelegation(params: kyveQueryAccount.QueryAccountRedelegationRequest): Promise<kyveQueryAccountRes.QueryAccountRedelegationResponse>;
}
export {};
