import { TransactionInstruction, PublicKey } from "@solana/web3.js";
import BN from "bn.js";
export interface DepositAndWithdrawArgs {
    liquidityAmount: BN;
    withdrawCollateralAmount: BN;
}
export interface DepositAndWithdrawAccounts {
    depositAccounts: {
        owner: PublicKey;
        obligation: PublicKey;
        lendingMarket: PublicKey;
        lendingMarketAuthority: PublicKey;
        reserve: PublicKey;
        reserveLiquidityMint: PublicKey;
        reserveLiquiditySupply: PublicKey;
        reserveCollateralMint: PublicKey;
        reserveDestinationDepositCollateral: PublicKey;
        userSourceLiquidity: PublicKey;
        placeholderUserDestinationCollateral: PublicKey;
        collateralTokenProgram: PublicKey;
        liquidityTokenProgram: PublicKey;
        instructionSysvarAccount: PublicKey;
    };
    withdrawAccounts: {
        owner: PublicKey;
        obligation: PublicKey;
        lendingMarket: PublicKey;
        lendingMarketAuthority: PublicKey;
        withdrawReserve: PublicKey;
        reserveLiquidityMint: PublicKey;
        reserveSourceCollateral: PublicKey;
        reserveCollateralMint: PublicKey;
        reserveLiquiditySupply: PublicKey;
        userDestinationLiquidity: PublicKey;
        placeholderUserDestinationCollateral: PublicKey;
        collateralTokenProgram: PublicKey;
        liquidityTokenProgram: PublicKey;
        instructionSysvarAccount: PublicKey;
    };
    depositFarmsAccounts: {
        obligationFarmUserState: PublicKey;
        reserveFarmState: PublicKey;
    };
    withdrawFarmsAccounts: {
        obligationFarmUserState: PublicKey;
        reserveFarmState: PublicKey;
    };
    farmsProgram: PublicKey;
}
export declare const layout: any;
export declare function depositAndWithdraw(args: DepositAndWithdrawArgs, accounts: DepositAndWithdrawAccounts, programId?: PublicKey): TransactionInstruction;
//# sourceMappingURL=depositAndWithdraw.d.ts.map