import BN from 'bn.js';
import { e as CpmmObservationState } from '../../../type-f5818943.js';
import '@solana/web3.js';
import '../../../api/type.js';
import '../../../common/txTool/txType.js';
import '../../../type-4a262146.js';
import '@solana/spl-token';
import '../../../module/amount.js';
import '../../../common/number.js';
import '../../../common/logger.js';
import '../../../module/fraction.js';
import '../../../module/token.js';
import '../../../common/pubKey.js';
import '../../../module/currency.js';
import '../../../api/api.js';
import 'axios';
import '../../../solana/type.js';
import '../../../api/url.js';
import '../../../common/owner.js';
import '../../../common/txTool/lookupTable.js';
import '../../../module/percent.js';
import '../../idl/gamma.type.js';
import 'decimal.js';
import '@coral-xyz/anchor';

declare const ONE_BASIS_POINT: BN;
declare const FEE_RATE_DENOMINATOR_VALUE: BN;
type PriceRange = {
    minPrice: BN;
    maxPrice: BN;
    twapPrice: BN;
};
type FeeType = "volatility";
declare class DynamicFee {
    static calculateDynamicFee(amount: BN, blockTimestamp: BN, observationState: CpmmObservationState, feeType: FeeType, baseFees: BN, poolVolatilityFactor: BN, isInvokedWithSignedSegmenter: boolean): BN;
    static calculatePreDynamicFee(amount: BN, blockTimestamp: BN, observationState: CpmmObservationState, feeType: FeeType, baseFees: BN, poolVolatilityFactor: BN, isInvokedWithSignedSegmenter: boolean): BN;
    static calculateDynamicFeeRate(blockTimestamp: BN, observationState: CpmmObservationState, feeType: FeeType, baseFees: BN, poolVolatilityFactor: BN, isInvokedWithSignedSegmenter: boolean): BN;
    static calculateVolatileFee(blockTimestamp: BN, observationState: CpmmObservationState, baseFees: BN, poolSpecifiedVolatilityFactor: BN, isInvokedWithSignedSegmenter: boolean): BN;
    static getPriceRange(observationState: CpmmObservationState, currentTime: BN, window: BN): PriceRange;
    static calculatePreFeeAmount(blockTimestamp: BN, postFeeAmount: BN, observationState: CpmmObservationState, feeType: FeeType, baseFees: BN, poolVolatilityFactor: BN, isInvokedWithSignedSegmenter: boolean): BN;
}

export { DynamicFee, FEE_RATE_DENOMINATOR_VALUE, ONE_BASIS_POINT };
