import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * ContinuousFund defines the fields of continuous fund proposal.
 * @name ContinuousFund
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.ContinuousFund
 */
export interface ContinuousFund {
    /**
     * Recipient is the address string of the account receiving funds.
     */
    recipient: string;
    /**
     * Percentage is the percentage of funds to be allocated from Community pool.
     */
    percentage: string;
    /**
     * Optional, if expiry is set, removes the state object when expired.
     */
    expiry?: Date;
}
export interface ContinuousFundProtoMsg {
    typeUrl: "/cosmos.protocolpool.v1.ContinuousFund";
    value: Uint8Array;
}
/**
 * ContinuousFund defines the fields of continuous fund proposal.
 * @name ContinuousFundAmino
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.ContinuousFund
 */
export interface ContinuousFundAmino {
    /**
     * Recipient is the address string of the account receiving funds.
     */
    recipient: string;
    /**
     * Percentage is the percentage of funds to be allocated from Community pool.
     */
    percentage: string;
    /**
     * Optional, if expiry is set, removes the state object when expired.
     */
    expiry?: string;
}
export interface ContinuousFundAminoMsg {
    type: "cosmos-sdk/ContinuousFund";
    value: ContinuousFundAmino;
}
/**
 * Params defines the parameters for the protocolpool module.
 * @name Params
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.Params
 */
export interface Params {
    /**
     * EnabledDistributionDenoms lists the denoms that are allowed to be distributed.
     * This is to avoid spending time distributing undesired tokens to continuous funds and budgets.
     */
    enabledDistributionDenoms: string[];
    /**
     * DistributionFrequency is the frequency (in terms of blocks) that funds are distributed out from the
     * x/protocolpool module.
     */
    distributionFrequency: bigint;
}
export interface ParamsProtoMsg {
    typeUrl: "/cosmos.protocolpool.v1.Params";
    value: Uint8Array;
}
/**
 * Params defines the parameters for the protocolpool module.
 * @name ParamsAmino
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.Params
 */
export interface ParamsAmino {
    /**
     * EnabledDistributionDenoms lists the denoms that are allowed to be distributed.
     * This is to avoid spending time distributing undesired tokens to continuous funds and budgets.
     */
    enabled_distribution_denoms: string[];
    /**
     * DistributionFrequency is the frequency (in terms of blocks) that funds are distributed out from the
     * x/protocolpool module.
     */
    distribution_frequency: string;
}
export interface ParamsAminoMsg {
    type: "cosmos-sdk/Params";
    value: ParamsAmino;
}
/**
 * ContinuousFund defines the fields of continuous fund proposal.
 * @name ContinuousFund
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.ContinuousFund
 */
export declare const ContinuousFund: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is ContinuousFund;
    isAmino(o: any): o is ContinuousFundAmino;
    encode(message: ContinuousFund, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): ContinuousFund;
    fromPartial(object: DeepPartial<ContinuousFund>): ContinuousFund;
    fromAmino(object: ContinuousFundAmino): ContinuousFund;
    toAmino(message: ContinuousFund): ContinuousFundAmino;
    fromAminoMsg(object: ContinuousFundAminoMsg): ContinuousFund;
    toAminoMsg(message: ContinuousFund): ContinuousFundAminoMsg;
    fromProtoMsg(message: ContinuousFundProtoMsg): ContinuousFund;
    toProto(message: ContinuousFund): Uint8Array;
    toProtoMsg(message: ContinuousFund): ContinuousFundProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Params defines the parameters for the protocolpool module.
 * @name Params
 * @package cosmos.protocolpool.v1
 * @see proto type: cosmos.protocolpool.v1.Params
 */
export declare const Params: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Params;
    isAmino(o: any): o is ParamsAmino;
    encode(message: Params, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Params;
    fromPartial(object: DeepPartial<Params>): Params;
    fromAmino(object: ParamsAmino): Params;
    toAmino(message: Params): ParamsAmino;
    fromAminoMsg(object: ParamsAminoMsg): Params;
    toAminoMsg(message: Params): ParamsAminoMsg;
    fromProtoMsg(message: ParamsProtoMsg): Params;
    toProto(message: Params): Uint8Array;
    toProtoMsg(message: Params): ParamsProtoMsg;
    registerTypeUrl(): void;
};
