import { AccountInfo, AccountMeta, PublicKey } from "@solana/web3.js"; import { WrapperVaultState } from "./state/wrapperVault"; export declare enum ProtocolKind { Kvault = 0, Klend = 1, Save = 2, Lulo = 3, Marginfi = 4 } export declare enum Direction { Deposit = "deposit", Withdraw = "withdraw" } export declare enum SwapMode { ExactIn = "ExactIn" } export interface QuoteParams { amount: bigint; inputMint: PublicKey; outputMint: PublicKey; swapMode: SwapMode; } export interface Quote { inAmount: bigint; outAmount: bigint; feeAmount: bigint; feeMint: PublicKey; warnings: QuoteWarning[]; } export interface QuoteWarning { code: string; message: string; protocol?: string; } export interface SwapParams { swapMode: SwapMode; inAmount: bigint; outAmount?: bigint; sourceMint: PublicKey; destinationMint: PublicKey; userTransferAuthority: PublicKey; sourceTokenAccount: PublicKey; destinationTokenAccount: PublicKey; } export type AccountMap = Map>; export interface QuoteContext { currentSlot: bigint; unixTimestamp: bigint; protocolDepositFeeBps: number; } export declare function directionFromSwap(wv: WrapperVaultState, params: SwapParams): Direction; export declare function readable(pubkey: PublicKey): AccountMeta; export declare function writable(pubkey: PublicKey): AccountMeta;