import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * ParameterChangeProposal defines a proposal to change one or more parameters.
 * @name ParameterChangeProposal
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParameterChangeProposal
 */
export interface ParameterChangeProposal {
    $typeUrl?: "/cosmos.params.v1beta1.ParameterChangeProposal";
    title: string;
    description: string;
    changes: ParamChange[];
}
export interface ParameterChangeProposalProtoMsg {
    typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal";
    value: Uint8Array;
}
/**
 * ParameterChangeProposal defines a proposal to change one or more parameters.
 * @name ParameterChangeProposalAmino
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParameterChangeProposal
 */
export interface ParameterChangeProposalAmino {
    title: string;
    description: string;
    changes: ParamChangeAmino[];
}
export interface ParameterChangeProposalAminoMsg {
    type: "cosmos-sdk/ParameterChangeProposal";
    value: ParameterChangeProposalAmino;
}
/**
 * ParamChange defines an individual parameter change, for use in
 * ParameterChangeProposal.
 * @name ParamChange
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParamChange
 */
export interface ParamChange {
    subspace: string;
    key: string;
    value: string;
}
export interface ParamChangeProtoMsg {
    typeUrl: "/cosmos.params.v1beta1.ParamChange";
    value: Uint8Array;
}
/**
 * ParamChange defines an individual parameter change, for use in
 * ParameterChangeProposal.
 * @name ParamChangeAmino
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParamChange
 */
export interface ParamChangeAmino {
    subspace: string;
    key: string;
    value: string;
}
export interface ParamChangeAminoMsg {
    type: "cosmos-sdk/ParamChange";
    value: ParamChangeAmino;
}
/**
 * ParameterChangeProposal defines a proposal to change one or more parameters.
 * @name ParameterChangeProposal
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParameterChangeProposal
 */
export declare const ParameterChangeProposal: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is ParameterChangeProposal;
    isAmino(o: any): o is ParameterChangeProposalAmino;
    encode(message: ParameterChangeProposal, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): ParameterChangeProposal;
    fromPartial(object: DeepPartial<ParameterChangeProposal>): ParameterChangeProposal;
    fromAmino(object: ParameterChangeProposalAmino): ParameterChangeProposal;
    toAmino(message: ParameterChangeProposal): ParameterChangeProposalAmino;
    fromAminoMsg(object: ParameterChangeProposalAminoMsg): ParameterChangeProposal;
    toAminoMsg(message: ParameterChangeProposal): ParameterChangeProposalAminoMsg;
    fromProtoMsg(message: ParameterChangeProposalProtoMsg): ParameterChangeProposal;
    toProto(message: ParameterChangeProposal): Uint8Array;
    toProtoMsg(message: ParameterChangeProposal): ParameterChangeProposalProtoMsg;
    registerTypeUrl(): void;
};
/**
 * ParamChange defines an individual parameter change, for use in
 * ParameterChangeProposal.
 * @name ParamChange
 * @package cosmos.params.v1beta1
 * @see proto type: cosmos.params.v1beta1.ParamChange
 */
export declare const ParamChange: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is ParamChange;
    isAmino(o: any): o is ParamChangeAmino;
    encode(message: ParamChange, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): ParamChange;
    fromPartial(object: DeepPartial<ParamChange>): ParamChange;
    fromAmino(object: ParamChangeAmino): ParamChange;
    toAmino(message: ParamChange): ParamChangeAmino;
    fromAminoMsg(object: ParamChangeAminoMsg): ParamChange;
    toAminoMsg(message: ParamChange): ParamChangeAminoMsg;
    fromProtoMsg(message: ParamChangeProtoMsg): ParamChange;
    toProto(message: ParamChange): Uint8Array;
    toProtoMsg(message: ParamChange): ParamChangeProtoMsg;
    registerTypeUrl(): void;
};
