import { Duration, DurationSDKType } from "../../google/protobuf/duration";
import * as _m0 from "protobufjs/minimal";
import { DeepPartial, Long } from "../../helpers";
/** TokenMapping связывает адрес токена на EVM сети с denom в Protocol */
export interface TokenMapping {
    /** Адрес ERC20 токена (checksummed hex) */
    ethTokenAddress: string;
    /** Protocol denom для минта */
    assetId: number;
    /**
     * Максимальная сумма (в минимальных единицах токена), которая может быть
     * получена без ожидания safe block. Если 0 - все транзакции ждут safe block.
     * Транзакции с суммой <= этого значения обрабатываются из latest block.
     */
    instantBridgeMaxAmount: string;
}
/** TokenMapping связывает адрес токена на EVM сети с denom в Protocol */
export interface TokenMappingSDKType {
    eth_token_address: string;
    asset_id: number;
    instant_bridge_max_amount: string;
}
/** ChainConfig содержит конфигурацию для одной EVM сети */
export interface ChainConfig {
    /** Chain ID (1=Ethereum, 42161=Arbitrum, etc.) */
    chainId: Long;
    /** Адрес MultiBridge контракта на этой сети */
    bridgeAddress: string;
    /** Токены на этой сети */
    tokenMappings: TokenMapping[];
}
/** ChainConfig содержит конфигурацию для одной EVM сети */
export interface ChainConfigSDKType {
    chain_id: Long;
    bridge_address: string;
    token_mappings: TokenMappingSDKType[];
}
/**
 * EventParams stores parameters about which events to recognize and which
 * tokens to mint.
 */
export interface EventParams {
    /** Конфигурация для нескольких EVM сетей */
    chains: ChainConfig[];
}
/**
 * EventParams stores parameters about which events to recognize and which
 * tokens to mint.
 */
export interface EventParamsSDKType {
    chains: ChainConfigSDKType[];
}
/** ProposeParams stores parameters for proposing to the module. */
export interface ProposeParams {
    /**
     * The maximum number of bridge events to propose per block.
     * Limits the number of events to propose in a single block
     * in-order to smooth out the flow of events.
     */
    maxBridgesPerBlock: number;
    /**
     * The minimum duration to wait between a finalized bridge and
     * proposing it. This allows other validators to have enough time to
     * also recognize its occurence. Therefore the bridge daemon should
     * pool for new finalized events at least as often as this parameter.
     */
    proposeDelayDuration?: Duration;
    /**
     * Do not propose any events if a [0, 1_000_000) random number generator
     * generates a number smaller than this number.
     * Setting this parameter to 1_000_000 means always skipping proposing events.
     */
    skipRatePpm: number;
    /**
     * Do not propose any events if the timestamp of the proposal block is
     * behind the proposers' wall-clock by at least this duration.
     */
    skipIfBlockDelayedByDuration?: Duration;
}
/** ProposeParams stores parameters for proposing to the module. */
export interface ProposeParamsSDKType {
    max_bridges_per_block: number;
    propose_delay_duration?: DurationSDKType;
    skip_rate_ppm: number;
    skip_if_block_delayed_by_duration?: DurationSDKType;
}
/** SafetyParams stores safety parameters for the module. */
export interface SafetyParams {
    /** True if bridging is disabled. */
    isDisabled: boolean;
    /**
     * The number of blocks that bridges accepted in-consensus will be pending
     * until the minted tokens are granted.
     */
    delayBlocks: number;
}
/** SafetyParams stores safety parameters for the module. */
export interface SafetyParamsSDKType {
    is_disabled: boolean;
    delay_blocks: number;
}
export declare const TokenMapping: {
    encode(message: TokenMapping, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TokenMapping;
    fromPartial(object: DeepPartial<TokenMapping>): TokenMapping;
};
export declare const ChainConfig: {
    encode(message: ChainConfig, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ChainConfig;
    fromPartial(object: DeepPartial<ChainConfig>): ChainConfig;
};
export declare const EventParams: {
    encode(message: EventParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EventParams;
    fromPartial(object: DeepPartial<EventParams>): EventParams;
};
export declare const ProposeParams: {
    encode(message: ProposeParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProposeParams;
    fromPartial(object: DeepPartial<ProposeParams>): ProposeParams;
};
export declare const SafetyParams: {
    encode(message: SafetyParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SafetyParams;
    fromPartial(object: DeepPartial<SafetyParams>): SafetyParams;
};
//# sourceMappingURL=params.d.ts.map