import { Duration } from "../../../google/protobuf/duration"; import { Any } from "../../../google/protobuf/any"; import * as _m0 from "protobufjs/minimal"; import { DeepPartial, Long } from "@osmonauts/helpers"; /** VoteOption enumerates the valid vote options for a given proposal. */ export declare enum VoteOption { /** VOTE_OPTION_UNSPECIFIED - VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ VOTE_OPTION_UNSPECIFIED = 0, /** VOTE_OPTION_YES - VOTE_OPTION_YES defines a yes vote option. */ VOTE_OPTION_YES = 1, /** VOTE_OPTION_ABSTAIN - VOTE_OPTION_ABSTAIN defines an abstain vote option. */ VOTE_OPTION_ABSTAIN = 2, /** VOTE_OPTION_NO - VOTE_OPTION_NO defines a no vote option. */ VOTE_OPTION_NO = 3, /** VOTE_OPTION_NO_WITH_VETO - VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ VOTE_OPTION_NO_WITH_VETO = 4, UNRECOGNIZED = -1 } export declare function voteOptionFromJSON(object: any): VoteOption; export declare function voteOptionToJSON(object: VoteOption): string; /** ProposalStatus defines proposal statuses. */ export declare enum ProposalStatus { /** PROPOSAL_STATUS_UNSPECIFIED - An empty value is invalid and not allowed. */ PROPOSAL_STATUS_UNSPECIFIED = 0, /** PROPOSAL_STATUS_SUBMITTED - Initial status of a proposal when persisted. */ PROPOSAL_STATUS_SUBMITTED = 1, /** PROPOSAL_STATUS_CLOSED - Final status of a proposal when the final tally was executed. */ PROPOSAL_STATUS_CLOSED = 2, /** PROPOSAL_STATUS_ABORTED - Final status of a proposal when the group was modified before the final tally. */ PROPOSAL_STATUS_ABORTED = 3, /** * PROPOSAL_STATUS_WITHDRAWN - A proposal can be deleted before the voting start time by the owner. When this happens the final status * is Withdrawn. */ PROPOSAL_STATUS_WITHDRAWN = 4, UNRECOGNIZED = -1 } export declare function proposalStatusFromJSON(object: any): ProposalStatus; export declare function proposalStatusToJSON(object: ProposalStatus): string; /** ProposalResult defines types of proposal results. */ export declare enum ProposalResult { /** PROPOSAL_RESULT_UNSPECIFIED - An empty value is invalid and not allowed */ PROPOSAL_RESULT_UNSPECIFIED = 0, /** PROPOSAL_RESULT_UNFINALIZED - Until a final tally has happened the status is unfinalized */ PROPOSAL_RESULT_UNFINALIZED = 1, /** PROPOSAL_RESULT_ACCEPTED - Final result of the tally */ PROPOSAL_RESULT_ACCEPTED = 2, /** PROPOSAL_RESULT_REJECTED - Final result of the tally */ PROPOSAL_RESULT_REJECTED = 3, UNRECOGNIZED = -1 } export declare function proposalResultFromJSON(object: any): ProposalResult; export declare function proposalResultToJSON(object: ProposalResult): string; /** ProposalExecutorResult defines types of proposal executor results. */ export declare enum ProposalExecutorResult { /** PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED - An empty value is not allowed. */ PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0, /** PROPOSAL_EXECUTOR_RESULT_NOT_RUN - We have not yet run the executor. */ PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1, /** PROPOSAL_EXECUTOR_RESULT_SUCCESS - The executor was successful and proposed action updated state. */ PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2, /** PROPOSAL_EXECUTOR_RESULT_FAILURE - The executor returned an error and proposed action didn't update state. */ PROPOSAL_EXECUTOR_RESULT_FAILURE = 3, UNRECOGNIZED = -1 } export declare function proposalExecutorResultFromJSON(object: any): ProposalExecutorResult; export declare function proposalExecutorResultToJSON(object: ProposalExecutorResult): string; /** * Member represents a group member with an account address, * non-zero weight and metadata. */ export interface Member { /** address is the member's account address. */ address: string; /** weight is the member's voting weight that should be greater than 0. */ weight: string; /** metadata is any arbitrary metadata to attached to the member. */ metadata: string; /** added_at is a timestamp specifying when a member was added. */ added_at: Date; } /** Members defines a repeated slice of Member objects. */ export interface Members { /** members is the list of members. */ members: Member[]; } /** ThresholdDecisionPolicy implements the DecisionPolicy interface */ export interface ThresholdDecisionPolicy { /** threshold is the minimum weighted sum of yes votes that must be met or exceeded for a proposal to succeed. */ threshold: string; /** windows defines the different windows for voting and execution. */ windows: DecisionPolicyWindows; } /** PercentageDecisionPolicy implements the DecisionPolicy interface */ export interface PercentageDecisionPolicy { /** percentage is the minimum percentage the weighted sum of yes votes must meet for a proposal to succeed. */ percentage: string; /** windows defines the different windows for voting and execution. */ windows: DecisionPolicyWindows; } /** DecisionPolicyWindows defines the different windows for voting and execution. */ export interface DecisionPolicyWindows { /** * voting_period is the duration from submission of a proposal to the end of voting period * Within this times votes can be submitted with MsgVote. */ voting_period: Duration; /** * min_execution_period is the minimum duration after the proposal submission * where members can start sending MsgExec. This means that the window for * sending a MsgExec transaction is: * `[ submission + min_execution_period ; submission + voting_period + max_execution_period]` * where max_execution_period is a app-specific config, defined in the keeper. * If not set, min_execution_period will default to 0. * * Please make sure to set a `min_execution_period` that is smaller than * `voting_period + max_execution_period`, or else the above execution window * is empty, meaning that all proposals created with this decision policy * won't be able to be executed. */ min_execution_period: Duration; } /** GroupInfo represents the high-level on-chain information for a group. */ export interface GroupInfo { /** id is the unique ID of the group. */ id: Long; /** admin is the account address of the group's admin. */ admin: string; /** metadata is any arbitrary metadata to attached to the group. */ metadata: string; /** * version is used to track changes to a group's membership structure that * would break existing proposals. Whenever any members weight is changed, * or any member is added or removed this version is incremented and will * cause proposals based on older versions of this group to fail */ version: Long; /** total_weight is the sum of the group members' weights. */ total_weight: string; /** created_at is a timestamp specifying when a group was created. */ created_at: Date; } /** GroupMember represents the relationship between a group and a member. */ export interface GroupMember { /** group_id is the unique ID of the group. */ group_id: Long; /** member is the member data. */ member: Member; } /** GroupPolicyInfo represents the high-level on-chain information for a group policy. */ export interface GroupPolicyInfo { /** address is the account address of group policy. */ address: string; /** group_id is the unique ID of the group. */ group_id: Long; /** admin is the account address of the group admin. */ admin: string; /** metadata is any arbitrary metadata to attached to the group policy. */ metadata: string; /** * version is used to track changes to a group's GroupPolicyInfo structure that * would create a different result on a running proposal. */ version: Long; /** decision_policy specifies the group policy's decision policy. */ decision_policy: Any; /** created_at is a timestamp specifying when a group policy was created. */ created_at: Date; } /** * Proposal defines a group proposal. Any member of a group can submit a proposal * for a group policy to decide upon. * A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal * passes as well as some optional metadata associated with the proposal. */ export interface Proposal { /** id is the unique id of the proposal. */ id: Long; /** address is the account address of group policy. */ address: string; /** metadata is any arbitrary metadata to attached to the proposal. */ metadata: string; /** proposers are the account addresses of the proposers. */ proposers: string[]; /** submit_time is a timestamp specifying when a proposal was submitted. */ submit_time: Date; /** * group_version tracks the version of the group that this proposal corresponds to. * When group membership is changed, existing proposals from previous group versions will become invalid. */ group_version: Long; /** * group_policy_version tracks the version of the group policy that this proposal corresponds to. * When a decision policy is changed, existing proposals from previous policy versions will become invalid. */ group_policy_version: Long; /** status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */ status: ProposalStatus; /** * result is the final result based on the votes and election rule. Initial value is unfinalized. * The result is persisted so that clients can always rely on this state and not have to replicate the logic. */ result: ProposalResult; /** * final_tally_result contains the sums of all weighted votes for this * proposal for each vote option, after tallying. When querying a proposal * via gRPC, this field is not populated until the proposal's voting period * has ended. */ final_tally_result: TallyResult; /** * voting_period_end is the timestamp before which voting must be done. * Unless a successfull MsgExec is called before (to execute a proposal whose * tally is successful before the voting period ends), tallying will be done * at this point, and the `final_tally_result`, as well * as `status` and `result` fields will be accordingly updated. */ voting_period_end: Date; /** executor_result is the final result based on the votes and election rule. Initial value is NotRun. */ executor_result: ProposalExecutorResult; /** messages is a list of Msgs that will be executed if the proposal passes. */ messages: Any[]; } /** TallyResult represents the sum of weighted votes for each vote option. */ export interface TallyResult { /** yes_count is the weighted sum of yes votes. */ yes_count: string; /** abstain_count is the weighted sum of abstainers. */ abstain_count: string; /** no is the weighted sum of no votes. */ no_count: string; /** no_with_veto_count is the weighted sum of veto. */ no_with_veto_count: string; } /** Vote represents a vote for a proposal. */ export interface Vote { /** proposal is the unique ID of the proposal. */ proposal_id: Long; /** voter is the account address of the voter. */ voter: string; /** option is the voter's choice on the proposal. */ option: VoteOption; /** metadata is any arbitrary metadata to attached to the vote. */ metadata: string; /** submit_time is the timestamp when the vote was submitted. */ submit_time: Date; } export declare const Member: { encode(message: Member, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Member; fromJSON(object: any): Member; toJSON(message: Member): unknown; fromPartial(object: DeepPartial): Member; }; export declare const Members: { encode(message: Members, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Members; fromJSON(object: any): Members; toJSON(message: Members): unknown; fromPartial(object: DeepPartial): Members; }; export declare const ThresholdDecisionPolicy: { encode(message: ThresholdDecisionPolicy, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ThresholdDecisionPolicy; fromJSON(object: any): ThresholdDecisionPolicy; toJSON(message: ThresholdDecisionPolicy): unknown; fromPartial(object: DeepPartial): ThresholdDecisionPolicy; }; export declare const PercentageDecisionPolicy: { encode(message: PercentageDecisionPolicy, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): PercentageDecisionPolicy; fromJSON(object: any): PercentageDecisionPolicy; toJSON(message: PercentageDecisionPolicy): unknown; fromPartial(object: DeepPartial): PercentageDecisionPolicy; }; export declare const DecisionPolicyWindows: { encode(message: DecisionPolicyWindows, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): DecisionPolicyWindows; fromJSON(object: any): DecisionPolicyWindows; toJSON(message: DecisionPolicyWindows): unknown; fromPartial(object: DeepPartial): DecisionPolicyWindows; }; export declare const GroupInfo: { encode(message: GroupInfo, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): GroupInfo; fromJSON(object: any): GroupInfo; toJSON(message: GroupInfo): unknown; fromPartial(object: DeepPartial): GroupInfo; }; export declare const GroupMember: { encode(message: GroupMember, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): GroupMember; fromJSON(object: any): GroupMember; toJSON(message: GroupMember): unknown; fromPartial(object: DeepPartial): GroupMember; }; export declare const GroupPolicyInfo: { encode(message: GroupPolicyInfo, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): GroupPolicyInfo; fromJSON(object: any): GroupPolicyInfo; toJSON(message: GroupPolicyInfo): unknown; fromPartial(object: DeepPartial): GroupPolicyInfo; }; export declare const Proposal: { encode(message: Proposal, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Proposal; fromJSON(object: any): Proposal; toJSON(message: Proposal): unknown; fromPartial(object: DeepPartial): Proposal; }; export declare const TallyResult: { encode(message: TallyResult, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): TallyResult; fromJSON(object: any): TallyResult; toJSON(message: TallyResult): unknown; fromPartial(object: DeepPartial): TallyResult; }; export declare const Vote: { encode(message: Vote, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Vote; fromJSON(object: any): Vote; toJSON(message: Vote): unknown; fromPartial(object: DeepPartial): Vote; };