import { ProposalStatusMap } from '@routerprotocol/chain-api/cosmos/gov/v1beta1/gov_pb';
import BaseConsumer from '../../BaseGrpcConsumer';
import { PaginationOption } from '../../../types/pagination';
/**
 * The Gov module is responsible for handling Governance. Fetch information like proposals, votes and tally.
 *
 * @group gRPC API
 *
 * @example
 * To use Gov methods, initialise a {@link ChainGrpcGovApi} object to with a gRPC endpoint. An endpoint can be retrieved by using {@link networkEndpoints}.
 * ```ts
 * const endpoint =  getEndpointsForNetwork(Network.Devnet).grpcEndpoint;
 * const client = new ChainGrpcGovApi(endpoint);
 * const response = await client.fetchProposal(1);
 * ```
 */
export declare class ChainGrpcGovApi extends BaseConsumer {
    fetchModuleParams(): Promise<import("..").GovModuleStateParams>;
    fetchProposals({ status, pagination, }: {
        status: ProposalStatusMap[keyof ProposalStatusMap];
        pagination?: PaginationOption;
    }): Promise<{
        proposals: import("..").Proposal[];
        pagination: import("../../../types/pagination").Pagination;
    }>;
    fetchProposal(proposalId: number): Promise<import("..").Proposal>;
    fetchProposalDeposits({ proposalId, pagination, }: {
        proposalId: number;
        pagination?: PaginationOption;
    }): Promise<{
        deposits: import("..").ProposalDeposit[];
        pagination: import("../../../types/pagination").Pagination;
    }>;
    fetchProposalVotes({ proposalId, pagination, }: {
        proposalId: number;
        pagination?: PaginationOption;
    }): Promise<{
        votes: import("..").Vote[];
        pagination: import("../../../types/pagination").Pagination;
    }>;
    fetchProposalTally(proposalId: number): Promise<import("..").TallyResult>;
}
