import { Uint64 } from "@cosmjs/math"; import { EncodeObject, GeneratedType } from "@shareledgerjs/signing"; import { Coin } from "@shareledgerjs/types/cosmos/base/v1beta1/coin"; import { TextProposal, VoteOption } from "@shareledgerjs/types/cosmos/gov/v1beta1/gov"; import { MsgDeposit, MsgSubmitProposal, MsgVote, MsgVoteWeighted } from "@shareledgerjs/types/cosmos/gov/v1beta1/tx"; import Long from "long"; import { BaseClient } from "../../baseclient"; export type GovProposalId = string | number | Long | Uint64; export declare function createGovTypes(): ReadonlyArray<[string, GeneratedType]>; export declare function createGovActions(): Record; export interface TextProposalEncodeObject extends EncodeObject { readonly typeUrl: "/cosmos.gov.v1beta1.TextProposal"; readonly value: Partial; } export declare function isMsgTextProposalEncodeObject(encodeObject: EncodeObject): encodeObject is TextProposalEncodeObject; export interface MsgSubmitProposalEncodeObject extends EncodeObject { readonly typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal"; readonly value: Partial; } export declare function isMsgSubmitProposalEncodeObject(encodeObject: EncodeObject): encodeObject is MsgSubmitProposalEncodeObject; export interface MsgVoteEncodeObject extends EncodeObject { readonly typeUrl: "/cosmos.gov.v1beta1.MsgVote"; readonly value: Partial; } export declare function isMsgVoteEncodeObject(encodeObject: EncodeObject): encodeObject is MsgVoteEncodeObject; export interface MsgVoteWeightedEncodeObject extends EncodeObject { readonly typeUrl: "/cosmos.gov.v1beta1.MsgVoteWeighted"; readonly value: Partial; } export declare function isMsgVoteWeightedEncodeObject(encodeObject: EncodeObject): encodeObject is MsgVoteWeightedEncodeObject; export interface MsgDepositEncodeObject extends EncodeObject { readonly typeUrl: "/cosmos.gov.v1beta1.MsgDeposit"; readonly value: Partial; } export declare function isMsgDepositEncodeObject(encodeObject: EncodeObject): encodeObject is MsgDepositEncodeObject; export interface GovTxExtensionMethods { submitProposal(proposer: string, initialDeposit: Coin[], content?: { title: string; description: string; }): MsgSubmitProposalEncodeObject; voteTx(proposalId: GovProposalId, voter: string, option: VoteOption): MsgVoteEncodeObject; voteWeightedTx(proposalId: GovProposalId, voter: string, options: Array<{ option: VoteOption; weight: string; }>): MsgVoteWeightedEncodeObject; depositTx(proposalId: GovProposalId, depositor: string, amount: Coin[]): MsgDepositEncodeObject; } export interface GovTxExtension { readonly gov: GovTxExtensionMethods; } export declare function GovTxExtension(constructor: T): T;