import { PublicKey } from '@solana/web3.js';
import BN__default from 'bn.js';
import { PoolInfoLayout, TickArrayLayout, ClmmConfigLayout, TickArrayBitmapExtensionLayout } from '../layout.js';
import '../../../marshmallow/index.js';
import '../../../marshmallow/buffer-layout.js';

interface SwapSimulationResult {
    allTrade: boolean;
    amountSpecifiedRemaining: BN__default;
    amountCalculated: BN__default;
    feeAmount: BN__default;
    sqrtPriceX64: BN__default;
    liquidity: BN__default;
    tickCurrent: number;
    accounts: PublicKey[];
}
declare function swapInternal({ programId, poolId, poolInfo, tickArrays, configInfo, tickarrayBitmapExtension, amountSpecified, sqrtPriceLimitX64, zeroForOne, isBaseInput, blockTimestamp, includeExtraTickArrays, }: {
    programId: PublicKey;
    poolId: PublicKey;
    poolInfo: ReturnType<typeof PoolInfoLayout.decode>;
    tickArrays: {
        address: PublicKey;
        value: ReturnType<typeof TickArrayLayout.decode>;
    }[];
    configInfo: ReturnType<typeof ClmmConfigLayout.decode>;
    tickarrayBitmapExtension: ReturnType<typeof TickArrayBitmapExtensionLayout.decode>;
    amountSpecified: BN__default;
    sqrtPriceLimitX64: BN__default;
    zeroForOne: boolean;
    isBaseInput: boolean;
    blockTimestamp: number;
    includeExtraTickArrays: boolean;
}): SwapSimulationResult;

export { SwapSimulationResult, swapInternal };
