// Type definitions for Executor configurations
export interface DstConfig {
    lzReceiveBaseGas: bigint
    lzComposeBaseGas: bigint
    multiplierBps: number
    floorMarginUsd: bigint
    nativeCap: bigint
}

export interface NativeDropParams {
    receiver: string
    amount: bigint
}

// refer to packages/layerzero-v2/sui/contracts/workers/executors/executor-fee-lib/sources/types/executor_option.move
export const ExecutorOptionType = {
    LZRECEIVE: 1,
    NATIVE_DROP: 2,
    LZCOMPOSE: 3,
    ORDERED_EXECUTION: 4,
} as const

export const ALL_EXECUTOR_OPTION_TYPES = Object.values(ExecutorOptionType)
