import BigNumber from 'bignumber.js';
import { BufferComposer, ComposableBuffer } from '@muirglacier/jellyfish-buffer';
import { Script } from '../../tx';
export interface LiqPoolSplit {
    tokenId: number;
    value: BigNumber;
}
export declare class CLiqPoolSplit extends ComposableBuffer<LiqPoolSplit> {
    composers(lps: LiqPoolSplit): BufferComposer[];
}
export interface GovernanceLpDailyReward {
    key: 'LP_DAILY_DFI_REWARD';
    value: BigNumber;
}
export interface GovernanceLpSplits {
    key: 'LP_SPLITS';
    value: LiqPoolSplit[];
}
export interface GovernanceUnmapped {
    key: string;
    value: string;
}
export declare type GovernanceVar = GovernanceLpDailyReward | GovernanceLpSplits | GovernanceUnmapped;
export declare abstract class CGovernanceVar extends ComposableBuffer<GovernanceVar> {
    abstract isWithHeight(): boolean;
    composers(gv: GovernanceVar): BufferComposer[];
}
export declare class CGovernanceVarWithoutHeight extends CGovernanceVar {
    isWithHeight(): boolean;
}
export declare class CGovernanceVarWithHeight extends CGovernanceVar {
    isWithHeight(): boolean;
}
export interface SetGovernance {
    governanceVars: GovernanceVar[];
}
/**
 * Composable CSetGovernance, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetGovernance extends ComposableBuffer<SetGovernance> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(gvs: SetGovernance): BufferComposer[];
}
export interface SetGovernanceHeight {
    governanceVars: GovernanceVar[];
    activationHeight: number;
}
/**
 * Composable CSetGovernanceHeight, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetGovernanceHeight extends ComposableBuffer<SetGovernanceHeight> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(gvs: SetGovernanceHeight): BufferComposer[];
}
export declare type ProposalType = 0x01 | 0x03;
export declare type ProposalCycles = 0x01 | 0x02 | 0x03;
export interface CreateProposal {
    type: ProposalType;
    address: Script;
    amount: BigNumber;
    cycles: ProposalCycles;
    title: string;
}
export interface CreateCfp extends CreateProposal {
    type: 0x01;
}
export interface CreateVoc extends CreateProposal {
    type: 0x03;
    cycles: 0x02;
}
/**
 * Composable CCreateProposal, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CCreateProposal extends ComposableBuffer<CreateProposal> {
    composers(ccp: CreateCfp | CreateVoc): BufferComposer[];
}
export declare class CCreateCfp extends CCreateProposal {
    static OP_CODE: number;
    static OP_NAME: string;
}
export declare class CCreateVoc extends CCreateProposal {
    static OP_CODE: number;
    static OP_NAME: string;
}
export declare type VoteDecision = 0x01 | 0x02 | 0x03;
export interface Vote {
    proposalId: string;
    masternodeId: string;
    voteDecision: VoteDecision;
}
/**
 * Composable CVote, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CVote extends ComposableBuffer<Vote> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(vote: Vote): BufferComposer[];
}
//# sourceMappingURL=dftx_governance.d.ts.map