import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * Module is the config object of the benchmark module.
 * @name Module
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.Module
 */
export interface Module {
    genesisParams?: GeneratorParams;
}
export interface ModuleProtoMsg {
    typeUrl: "/cosmos.benchmark.module.v1.Module";
    value: Uint8Array;
}
/**
 * Module is the config object of the benchmark module.
 * @name ModuleAmino
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.Module
 */
export interface ModuleAmino {
    genesis_params?: GeneratorParamsAmino;
}
export interface ModuleAminoMsg {
    type: "cosmos-sdk/Module";
    value: ModuleAmino;
}
/**
 * GenesisParams defines the genesis parameters for the benchmark module.
 * @name GeneratorParams
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.GeneratorParams
 */
export interface GeneratorParams {
    /**
     * seed is the seed for the random number generator.
     */
    seed: bigint;
    /**
     * bucket_count is the number of store keys to uniformly distribute genesis_count keys across.
     */
    bucketCount: bigint;
    /**
     * key_mean is the mean size (in normal distribution) of keys in each bucket.
     */
    keyMean: bigint;
    /**
     * key_std_dev is the standard deviation of key sizes in each bucket.
     */
    keyStdDev: bigint;
    /**
     * value_mean is the mean size (in normal distribution) of values in each bucket.
     */
    valueMean: bigint;
    /**
     * value_std_dev is the standard deviation of value sizes in each bucket.
     */
    valueStdDev: bigint;
    /**
     * genesis_count is the number of keys to insert in the store, distributed across all buckets.
     */
    genesisCount: bigint;
    /**
     * insert_weight is the weight of insert operations.
     */
    insertWeight: number;
    /**
     * update_weight is the weight of update operations.
     */
    updateWeight: number;
    /**
     * get_weight is the weight of get operations.
     */
    getWeight: number;
    /**
     * delete_weight is the weight of delete operations.
     */
    deleteWeight: number;
}
export interface GeneratorParamsProtoMsg {
    typeUrl: "/cosmos.benchmark.module.v1.GeneratorParams";
    value: Uint8Array;
}
/**
 * GenesisParams defines the genesis parameters for the benchmark module.
 * @name GeneratorParamsAmino
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.GeneratorParams
 */
export interface GeneratorParamsAmino {
    /**
     * seed is the seed for the random number generator.
     */
    seed: string;
    /**
     * bucket_count is the number of store keys to uniformly distribute genesis_count keys across.
     */
    bucket_count: string;
    /**
     * key_mean is the mean size (in normal distribution) of keys in each bucket.
     */
    key_mean: string;
    /**
     * key_std_dev is the standard deviation of key sizes in each bucket.
     */
    key_std_dev: string;
    /**
     * value_mean is the mean size (in normal distribution) of values in each bucket.
     */
    value_mean: string;
    /**
     * value_std_dev is the standard deviation of value sizes in each bucket.
     */
    value_std_dev: string;
    /**
     * genesis_count is the number of keys to insert in the store, distributed across all buckets.
     */
    genesis_count: string;
    /**
     * insert_weight is the weight of insert operations.
     */
    insert_weight: number;
    /**
     * update_weight is the weight of update operations.
     */
    update_weight: number;
    /**
     * get_weight is the weight of get operations.
     */
    get_weight: number;
    /**
     * delete_weight is the weight of delete operations.
     */
    delete_weight: number;
}
export interface GeneratorParamsAminoMsg {
    type: "cosmos-sdk/GeneratorParams";
    value: GeneratorParamsAmino;
}
/**
 * Module is the config object of the benchmark module.
 * @name Module
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.Module
 */
export declare const Module: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Module;
    isAmino(o: any): o is ModuleAmino;
    encode(message: Module, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Module;
    fromPartial(object: DeepPartial<Module>): Module;
    fromAmino(object: ModuleAmino): Module;
    toAmino(message: Module): ModuleAmino;
    fromAminoMsg(object: ModuleAminoMsg): Module;
    toAminoMsg(message: Module): ModuleAminoMsg;
    fromProtoMsg(message: ModuleProtoMsg): Module;
    toProto(message: Module): Uint8Array;
    toProtoMsg(message: Module): ModuleProtoMsg;
    registerTypeUrl(): void;
};
/**
 * GenesisParams defines the genesis parameters for the benchmark module.
 * @name GeneratorParams
 * @package cosmos.benchmark.module.v1
 * @see proto type: cosmos.benchmark.module.v1.GeneratorParams
 */
export declare const GeneratorParams: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GeneratorParams;
    isAmino(o: any): o is GeneratorParamsAmino;
    encode(message: GeneratorParams, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GeneratorParams;
    fromPartial(object: DeepPartial<GeneratorParams>): GeneratorParams;
    fromAmino(object: GeneratorParamsAmino): GeneratorParams;
    toAmino(message: GeneratorParams): GeneratorParamsAmino;
    fromAminoMsg(object: GeneratorParamsAminoMsg): GeneratorParams;
    toAminoMsg(message: GeneratorParams): GeneratorParamsAminoMsg;
    fromProtoMsg(message: GeneratorParamsProtoMsg): GeneratorParams;
    toProto(message: GeneratorParams): Uint8Array;
    toProtoMsg(message: GeneratorParams): GeneratorParamsProtoMsg;
    registerTypeUrl(): void;
};
