import { Address, Instruction, Option, TransactionSigner } from '@solana/kit'; import { KaminoMarket, KaminoObligation, KaminoReserve } from '../classes'; import { ObligationType, ScopePriceRefreshConfig, KlendAccountsResult } from '../utils'; import { AdjustLeverageInitialInputs, AdjustLeverageIxsParams, AdjustLeverageIxsResponse, AdjustLeverageSwapInputsParams, DepositLeverageInitialInputs, DepositWithLeverageParams, DepositWithLeverageSwapInputsParams, DepositLeverageIxsResponse, SwapInputs, SwapIxs, WithdrawLeverageCalcsResult, WithdrawLeverageInitialInputs, WithdrawLeverageIxsResponse, WithdrawWithLeverageParams, WithdrawWithLeverageSwapInputsParams, LeverageIxsOutput, FlashLoanInfo } from './types'; import type { LedgerInstant } from '../utils/ledger'; export declare const WITHDRAW_SLOT_OFFSET = 150; /** * Inputs for {@link getDepositLeverageKlendAccounts}: the {@link getDepositWithLeverageSwapInputs} props minus the * quoter (and logger), since the klend account footprint is discovered without an external swap. */ export type DepositLeverageKlendAccountsInputs = Omit, 'quoter' | 'logger'>; /** * Light helper: returns the exact, final set of klend accounts (and program ids) a deposit-with-leverage operation * with the same inputs would consume, plus their count, WITHOUT running the external swap. This is the same set the * operation passes to the quoter (invariant to the swap amounts), so the count is accurate and final — the FE can * use it to know how many accounts remain for the external swap within the transaction's account limit. */ export declare function getDepositLeverageKlendAccounts(inputs: DepositLeverageKlendAccountsInputs): Promise; /** * Inputs for {@link getWithdrawLeverageKlendAccounts}: the {@link getWithdrawWithLeverageSwapInputs} props minus the * quoter (and logger). */ export type WithdrawLeverageKlendAccountsInputs = Omit, 'quoter' | 'logger'>; /** Light helper: the accurate, final klend account footprint of a withdraw-with-leverage operation. See {@link getDepositLeverageKlendAccounts}. */ export declare function getWithdrawLeverageKlendAccounts(inputs: WithdrawLeverageKlendAccountsInputs): Promise; /** * Inputs for {@link getAdjustLeverageKlendAccounts}: the {@link getAdjustLeverageSwapInputs} props minus the quoter * (and logger). */ export type AdjustLeverageKlendAccountsInputs = Omit, 'quoter' | 'logger'>; /** Light helper: the accurate, final klend account footprint of an adjust-leverage operation. See {@link getDepositLeverageKlendAccounts}. */ export declare function getAdjustLeverageKlendAccounts(inputs: AdjustLeverageKlendAccountsInputs): Promise; export declare function getDepositWithLeverageSwapInputs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentLedgerInstant, targetLeverage, selectedTokenMint, obligationTypeTagOverride, scopeRefreshIx, budgetAndPriorityFeeIxs, quoteBufferBps, quoter, useV2Ixs, elevationGroupOverride, flashBorrowType, logger, }: DepositWithLeverageSwapInputsParams): Promise<{ flashLoanInfo: FlashLoanInfo; swapInputs: SwapInputs; initialInputs: DepositLeverageInitialInputs; }>; export declare function getDepositWithLeverageIxs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, depositAmount, priceDebtToColl, slippagePct, obligation, referrer, currentLedgerInstant, targetLeverage, selectedTokenMint, obligationTypeTagOverride, scopeRefreshIx, budgetAndPriorityFeeIxs, quoteBufferBps, quoter, swapper, elevationGroupOverride, useV2Ixs, rollOver, flashBorrowType, logger, }: DepositWithLeverageParams): Promise>>; export declare function getWithdrawWithLeverageSwapInputs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, deposited, borrowed, obligation, referrer, currentLedgerInstant, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, scopeRefreshIx, quoteBufferBps, quoter, useV2Ixs, userSolBalanceLamports, flashBorrowType, logger, }: WithdrawWithLeverageSwapInputsParams): Promise<{ swapInputs: SwapInputs; flashLoanInfo: FlashLoanInfo; initialInputs: WithdrawLeverageInitialInputs; }>; export declare function getWithdrawWithLeverageIxs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, obligation, deposited, borrowed, referrer, currentLedgerInstant, withdrawAmount, priceCollToDebt, slippagePct, isClosingPosition, selectedTokenMint, budgetAndPriorityFeeIxs, scopeRefreshIx, quoteBufferBps, quoter, swapper, useV2Ixs, userSolBalanceLamports, flashBorrowType, }: WithdrawWithLeverageParams): Promise>>; export declare function buildWithdrawWithLeverageIxsDebtFlash(market: KaminoMarket, debtReserve: KaminoReserve, collReserve: KaminoReserve, owner: TransactionSigner, obligation: KaminoObligation, referrer: Option
, currentLedgerInstant: LedgerInstant, isClosingPosition: boolean, depositTokenIsSol: boolean, scopeRefreshIx: Instruction[], calcs: WithdrawLeverageCalcsResult, budgetAndPriorityFeeIxs: Instruction[] | undefined, swapQuoteIxsArray: SwapIxs[], useV2Ixs: boolean, userSolBalanceLamports: number): Promise; export declare function getAdjustLeverageSwapInputs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, obligation, depositedLamports, borrowedLamports, referrer, currentLedgerInstant, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, scopeRefreshIx, quoteBufferBps, quoter, useV2Ixs, withdrawSlotOffset, userSolBalanceLamports, flashBorrowType, }: AdjustLeverageSwapInputsParams): Promise<{ swapInputs: SwapInputs; flashLoanInfo: FlashLoanInfo; initialInputs: AdjustLeverageInitialInputs; }>; export declare function getAdjustLeverageIxs({ owner, kaminoMarket, debtReserveAddress, collReserveAddress, obligation, depositedLamports, borrowedLamports, referrer, currentLedgerInstant, targetLeverage, priceCollToDebt, priceDebtToColl, slippagePct, budgetAndPriorityFeeIxs, scopeRefreshIx, quoteBufferBps, quoter, swapper, useV2Ixs, withdrawSlotOffset, userSolBalanceLamports, flashBorrowType, logger, }: AdjustLeverageIxsParams): Promise>>; export declare const getSetupIxs: (owner: TransactionSigner, collTokenMint: Address, collReserve: KaminoReserve, debtTokenMint: Address, debtReserve: KaminoReserve, budgetAndPriorityFeeIxs: Instruction[] | undefined) => Promise<{ budgetIxs: Instruction | import("@solana/kit").AccountLookupMeta)[]>[]; createAtasIxs: Instruction | import("@solana/kit").AccountLookupMeta)[]>[]; }>; export declare const getScopeRefreshIxForObligationAndReserves: (market: KaminoMarket, collReserve: KaminoReserve, debtReserve: KaminoReserve, obligation: KaminoObligation | ObligationType | undefined, scopeRefreshConfig: ScopePriceRefreshConfig | undefined) => Promise; //# sourceMappingURL=operations.d.ts.map