import BN from 'bn.js'; import { PublicKey } from '@solana/web3.js'; import { Fraction } from './fraction'; import { BountySchedule } from './intents/bounty'; import { FormattedBountySchedule } from './intents/intent'; export declare const MAX_MANAGERS_PER_BASKET = 10; export declare const MAX_SYMBOL_LENGTH = 10; export declare const MAX_NAME_LENGTH = 32; export declare const MAX_URI_LENGTH = 200; export declare enum BasketType { Private = 0, Public = 1 } export interface EditCreator { creator: PublicKey; } export declare const EditCreatorLayout: any; export interface AuthorityBitmasks { scheduleAuthorityBitmask: number; feesAuthorityBitmask: number; managersAuthorityBitmask: number; automationAuthorityBitmask: number; lpAuthorityBitmask: number; metadataAuthorityBitmask: number; depositsAuthorityBitmask: number; forceRebalanceAuthorityBitmask: number; customRebalanceAuthorityBitmask: number; addTokenIntentAuthorityBitmask: number; updateWeightsIntentAuthorityBitmask: number; makeDirectSwapIntentAuthorityBitmask: number; extraData: number; extraData1: number; extraData2: number; } export declare const AuthorityBitmasksLayout: any; export interface ManagerSettings { managers: PublicKey[]; managersWeightBps: number[]; modificationDelay: BN; } export declare const ManagerSettingsLayout: any; export interface ManagerSettingsWithAuthorityBitmasks { managerSettings: ManagerSettings; authorityBitmasks: AuthorityBitmasks; } export declare const ManagerSettingsWithAuthorityBitmasksLayout: any; export interface HostFees { hostDepositFeeBps: number; hostWithdrawalFeeBps: number; hostManagementFeeBps: number; hostPerformanceFeeBps: number; } export declare const HostFeesLayout: any; export interface FeeSettings { hostDepositFeeBps: number; hostWithdrawFeeBps: number; hostManagementFeeBps: number; hostPerformanceFeeBps: number; creatorDepositFeeBps: number; creatorWithdrawFeeBps: number; creatorManagementFeeBps: number; creatorPerformanceFeeBps: number; managersDepositFeeBps: number; managersWithdrawFeeBps: number; managersManagementFeeBps: number; managersPerformanceFeeBps: number; basketDepositFeeBps: number; basketWithdrawFeeBps: number; extraData: number[]; modificationDelay: BN; } export declare const FeeSettingsLayout: any; export interface ScheduleSettings { cycleStartTime: BN; cycleDuration: BN; depositsStart: BN; depositsEnd: BN; automationStart: BN; automationEnd: BN; managementStart: BN; managementEnd: BN; modificationDelay: BN; } export declare const ScheduleSettingsLayout: any; export interface AutomationSettings { allowAutomation: number; rebalanceSlippageThresholdBps: number; perTradeRebalanceSlippageThresholdBps: number; rebalanceActivationThresholdAbsBps: number; rebalanceActivationThresholdRelBps: number; rebalanceActivationCooldown: BN; extraData: PublicKey[]; modificationDelay: BN; } export declare const AutomationSettingsLayout: any; export interface LpSettings { allowLp: number; lpThresholdBps: number; extraData: number[]; modificationDelay: BN; } export declare const LpSettingsLayout: any; export interface MetadataParams { name: string; symbol: string; uri: string; } export declare const MetadataParamsLayout: any; export interface MetadataSettings { symbolLength: number; symbol: number[]; nameLength: number; name: number[]; uriLength: number; uri: number[]; modificationDelay: BN; } export declare const MetadataSettingsLayout: any; export interface EditAddTokenDelay { modificationDelay: BN; } export declare const EditAddTokenDelayLayout: any; export interface EditUpdateWeightsDelay { modificationDelay: BN; } export declare const EditUpdateWeightsDelayLayout: any; export interface EditMakeDirectSwapDelay { modificationDelay: BN; } export declare const EditMakeDirectSwapDelayLayout: any; export interface UpdateWeights { tokenWeights: number[]; tokenMintsHash: number[]; } export declare const UpdateWeightsLayout: any; export interface MakeDirectSwap { fromTokenMint: PublicKey; toTokenMint: PublicKey; amountFrom: BN; amountTo: BN; } export declare const MakeDirectSwapLayout: any; export interface BasketSettings { creator: PublicKey; host: PublicKey; basketType: BasketType; bountyMint: PublicKey; bountyBalance: BN; startPrice: Fraction; highWaterMark: Fraction; activeRebalance: BN; activeWithdraws: BN; activeManagements: BN; lastAutomationExecutionTimestamp: BN; managers: ManagerSettings; managersLastUpdateTimestamp: BN; managersAuthorityBitmask: number; fees: FeeSettings; feesLastUpdateTimestamp: BN; feesAuthorityBitmask: number; schedule: ScheduleSettings; scheduleLastUpdateTimestamp: BN; scheduleAuthorityBitmask: number; automation: AutomationSettings; automationLastUpdateTimestamp: BN; automationAuthorityBitmask: number; lp: LpSettings; lpLastUpdateTimestamp: BN; lpAuthorityBitmask: number; metadata: MetadataSettings; metadataLastUpdateTimestamp: BN; metadataAuthorityBitmask: number; depositsAreAllowed: number; depositsAuthorityBitmask: number; forceRebalanceIsAllowed: number; forceRebalanceModificationDelay: BN; forceRebalanceLastUpdateTimestamp: BN; forceRebalanceAuthorityBitmask: number; customRebalanceIsAllowed: number; customRebalanceModificationDelay: BN; customRebalanceLastUpdateTimestamp: BN; customRebalanceAuthorityBitmask: number; addTokenDelay: BN; addTokenLastUpdateTimestamp: BN; addTokenIntentAuthorityBitmask: number; updateWeightsDelay: BN; updateWeightsLastUpdateTimestamp: BN; updateWeightsIntentAuthorityBitmask: number; makeDirectSwapDelay: BN; makeDirectSwapLastUpdateTimestamp: BN; makeDirectSwapIntentAuthorityBitmask: number; extraData: BN[]; } export declare const BasketSettingsLayout: any; export interface FormattedGlobalConfig { pubkey: string; admin: string; owners: string[]; total_number_of_baskets: number; allow_interactions: boolean; allow_creation: boolean; allow_management: boolean; allow_automation: boolean; allow_deposits: boolean; allow_withdraws: boolean; max_deposit_fee_bps: number; max_withdraw_fee_bps: number; max_management_fee_bps: number; max_performance_fee_bps: number; symmetry_fee_collector: string; symmetry_deposit_fee_bps: number; symmetry_deposit_fee_share_bps: number; symmetry_withdraw_fee_bps: number; symmetry_withdraw_fee_share_bps: number; symmetry_management_fee_bps: number; symmetry_management_fee_share_bps: number; symmetry_performance_fee_bps: number; symmetry_performance_fee_share_bps: number; symmetry_trade_fee_bps: number; symmetry_limit_order_fee_bps: number; bounty_mint: string; min_bounty_for_basket_automation: number; bounty_bond_amount: number; bounty_per_task: FormattedBountySchedule; bounty_per_price_update_task_divisor: number; min_remaining_value: number; min_mint_ratio: number; apr_bps_per_year: number; rebalance_intent_lifetime: number; rebalance_auction_1_timeframe: number; rebalance_auction_2_timeframe: number; rebalance_auction_3_timeframe: number; price_update_delay_after_creation: number; price_update_lifetime: number; price_update_reexecution_delay: number; } export interface GlobalConfig { admin: PublicKey; owners: PublicKey[]; totalNumberOfBaskets: BN; allowInteractions: number; allowCreation: number; allowManagement: number; allowAutomation: number; allowDeposits: number; allowWithdraws: number; maxDepositFeeBps: number; maxWithdrawFeeBps: number; maxManagementFeeBps: number; maxPerformanceFeeBps: number; symmetryFeeCollector: PublicKey; symmetryDepositFeeBps: number; symmetryDepositFeeShareBps: number; symmetryWithdrawFeeBps: number; symmetryWithdrawFeeShareBps: number; symmetryManagementFeeBps: number; symmetryManagementFeeShareBps: number; symmetryPerformanceFeeBps: number; symmetryPerformanceFeeShareBps: number; symmetryTradeFeeBps: number; symmetryLimitOrderFeeBps: number; symmetryFeesExtraData: number[]; bountyMint: PublicKey; minBountyForBasketAutomation: BN; bountyBondAmount: BN; bountyPerTask: BountySchedule; bountyPerPriceUpdateTaskDivisor: BN; minRemainingValue: Fraction; minMintRatio: Fraction; aprBpsPerYear: number; rebalanceIntentLifetime: BN; rebalanceAuction1Timeframe: BN; rebalanceAuction2Timeframe: BN; rebalanceAuction3Timeframe: BN; priceUpdateDelayAfterCreation: BN; priceUpdateLifetime: BN; priceUpdateReexecutionDelay: BN; extraData: BN[]; formatted?: FormattedGlobalConfig; } export declare const GlobalConfigLayout: any;