import { type MarketInput } from "@morpho-org/midnight-sdk"; import { type Address } from "viem"; import { type Metadata, type MidnightSupplyCollateralAction, type Transaction } from "../../types/index.js"; /** Parameters for encoding a direct Midnight collateral supply. */ export interface MidnightSupplyCollateralParams { readonly chainId: number; readonly market: MarketInput; readonly collateralIndex?: bigint; readonly assets: bigint; readonly onBehalf: Address; readonly metadata?: Metadata; } /** * Encodes a direct Midnight collateral supply. * * Use this low-level builder when a flow already knows the market, collateral * index, and approval state. App flows should usually call * `client.morpho.midnight(chainId).supplyCollateral(...)`, which resolves the * ERC20 approval requirement before exposing `buildTx`. * * @param params.chainId - Chain id used to resolve `Midnight`. * @param params.market - Midnight market receiving collateral. * @param params.collateralIndex - Optional collateral index; defaults to `0n`. * @param params.assets - Collateral assets to supply. * @param params.onBehalf - Account whose collateral balance increases. * @param params.metadata - Optional analytics metadata appended to calldata. * @returns A deep-frozen `Transaction` targeting `Midnight`. * @throws {NonPositiveInputError} when `assets <= 0n`. * @throws {ChainIdMismatchError} when the market targets another chain. * @throws {MidnightMarketAddressMismatchError} when the market targets another Midnight deployment. * @throws {UnknownCollateralIndexError} when `collateralIndex` is not configured on the market. * @example * ```ts * import { midnightSupplyCollateral } from "@morpho-org/morpho-sdk"; * * const tx = midnightSupplyCollateral({ * chainId: 8453, * market: marketData.params, * collateralIndex: 0n, * assets: 2_000_000n, * onBehalf: user, * }); * ``` */ export declare const midnightSupplyCollateral: (params: MidnightSupplyCollateralParams) => Readonly>;