import { VaultStatus } from "./vault";
import * as _m0 from "protobufjs/minimal";
import { DeepPartial } from "../../helpers";
/** QuotingParams stores vault quoting parameters. */
export interface QuotingParams {
    /**
     * The number of layers of orders a vault places. For example if
     * `layers=2`, a vault places 2 asks and 2 bids.
     */
    layers: number;
    /** The minimum base spread when a vault quotes around reservation price. */
    spreadMinPpm: number;
    /**
     * The buffer amount to add to min_price_change_ppm to arrive at `spread`
     * according to formula:
     * `spread = max(spread_min_ppm, min_price_change_ppm + spread_buffer_ppm)`.
     */
    spreadBufferPpm: number;
    /** The factor that determines how aggressive a vault skews its orders. */
    skewFactorPpm: number;
    /** The percentage of vault equity that each order is sized at. */
    orderSizePctPpm: number;
    /** The duration that a vault's orders are valid for. */
    orderExpirationSeconds: number;
    /**
     * The number of quote quantums in quote asset that a vault with no perpetual
     * positions must have to activate, i.e. if a vault has no perpetual positions
     * and has strictly less than this amount of quote asset, it will not
     * activate.
     */
    activationThresholdQuoteQuantums: Uint8Array;
}
/** QuotingParams stores vault quoting parameters. */
export interface QuotingParamsSDKType {
    layers: number;
    spread_min_ppm: number;
    spread_buffer_ppm: number;
    skew_factor_ppm: number;
    order_size_pct_ppm: number;
    order_expiration_seconds: number;
    activation_threshold_quote_quantums: Uint8Array;
}
/** VaultParams stores vault parameters. */
export interface VaultParams {
    /** Status of the vault. */
    status: VaultStatus;
    /** Quoting parameters of the vault. */
    quotingParams?: QuotingParams;
}
/** VaultParams stores vault parameters. */
export interface VaultParamsSDKType {
    status: VaultStatus;
    quoting_params?: QuotingParamsSDKType;
}
/** OperatorParams stores parameters regarding megavault operator. */
export interface OperatorParams {
    /** Address of the operator. */
    operator: string;
    /** Metadata of the operator. */
    metadata?: OperatorMetadata;
}
/** OperatorParams stores parameters regarding megavault operator. */
export interface OperatorParamsSDKType {
    operator: string;
    metadata?: OperatorMetadataSDKType;
}
/** OperatorMetadata stores metadata regarding megavault operator. */
export interface OperatorMetadata {
    /** Name of the operator. */
    name: string;
    /** Description of the operator. */
    description: string;
}
/** OperatorMetadata stores metadata regarding megavault operator. */
export interface OperatorMetadataSDKType {
    name: string;
    description: string;
}
/**
 * Deprecated: Params stores `x/vault` parameters.
 * Deprecated since v6.x as is replaced by QuotingParams.
 */
export interface Params {
    /**
     * The number of layers of orders a vault places. For example if
     * `layers=2`, a vault places 2 asks and 2 bids.
     */
    layers: number;
    /** The minimum base spread when a vault quotes around reservation price. */
    spreadMinPpm: number;
    /**
     * The buffer amount to add to min_price_change_ppm to arrive at `spread`
     * according to formula:
     * `spread = max(spread_min_ppm, min_price_change_ppm + spread_buffer_ppm)`.
     */
    spreadBufferPpm: number;
    /** The factor that determines how aggressive a vault skews its orders. */
    skewFactorPpm: number;
    /** The percentage of vault equity that each order is sized at. */
    orderSizePctPpm: number;
    /** The duration that a vault's orders are valid for. */
    orderExpirationSeconds: number;
    /**
     * The number of quote quantums in quote asset that a vault with no perpetual
     * positions must have to activate, i.e. if a vault has no perpetual positions
     * and has strictly less than this amount of quote asset, it will not
     * activate.
     */
    activationThresholdQuoteQuantums: Uint8Array;
}
/**
 * Deprecated: Params stores `x/vault` parameters.
 * Deprecated since v6.x as is replaced by QuotingParams.
 */
export interface ParamsSDKType {
    layers: number;
    spread_min_ppm: number;
    spread_buffer_ppm: number;
    skew_factor_ppm: number;
    order_size_pct_ppm: number;
    order_expiration_seconds: number;
    activation_threshold_quote_quantums: Uint8Array;
}
export declare const QuotingParams: {
    encode(message: QuotingParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QuotingParams;
    fromPartial(object: DeepPartial<QuotingParams>): QuotingParams;
};
export declare const VaultParams: {
    encode(message: VaultParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): VaultParams;
    fromPartial(object: DeepPartial<VaultParams>): VaultParams;
};
export declare const OperatorParams: {
    encode(message: OperatorParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OperatorParams;
    fromPartial(object: DeepPartial<OperatorParams>): OperatorParams;
};
export declare const OperatorMetadata: {
    encode(message: OperatorMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OperatorMetadata;
    fromPartial(object: DeepPartial<OperatorMetadata>): OperatorMetadata;
};
export declare const Params: {
    encode(message: Params, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Params;
    fromPartial(object: DeepPartial<Params>): Params;
};
//# sourceMappingURL=params.d.ts.map