import BN from 'bn.js'; import { AddressLookupTableAccount, PublicKey } from '@solana/web3.js'; import { OracleAggregator } from './oracle'; import { OraclePrice } from '../states/oracles/oracle'; import Decimal from 'decimal.js'; import { BasketSettings } from './config'; import { EditAddTokenSettings, EditAutomationSettings, EditCreatorSettings, EditCustomRebalanceSettings, EditDepositsSettings, EditFeeSettings, EditForceRebalanceSettings, EditLpSettings, EditMakeDirectSwapSettings, EditManagerSettings, EditMetadataSettings, EditScheduleSettings, EditUpdateWeightsSettings, OracleInput } from './intents/intent'; export type FormattedBasketType = "private" | "public"; export declare const BASKET_TYPES_STRINGS: Map; export interface FormattedAccumulatedFees { symmetry_fees: number; creator_fees: number; host_fees: number; managers_fees: number; } export interface FormattedLookupTables { active: { pubkey: string; contents: string[]; }[]; temp: { pubkey: string; contents: string[]; }[]; } export interface FormattedOracleSettings extends OracleInput { quote: string; side: string; } export interface FormattedOracle { oracle_settings: FormattedOracleSettings; accounts_to_load_lut_ids: number[]; accounts_to_load_lut_indices: number[]; } export interface FormattedOracleAggregator { num_oracles: number; min_oracles_thresh: number; oracles: FormattedOracle[]; min_conf_bps: number; conf_thresh_bps: number; conf_multiplier: number; } export interface FormattedAsset { mint: string; amount: number; weight: number; active: boolean; oracle_aggregator: FormattedOracleAggregator; } export interface FormattedCreatorSettings extends EditCreatorSettings { } export interface FormattedManagersSettings extends EditManagerSettings { updated_at: number; } export interface FormattedFeeSettings extends EditFeeSettings { host_deposit_fee_bps: number; host_withdraw_fee_bps: number; host_management_fee_bps: number; host_performance_fee_bps: number; updated_at: number; } export interface FormattedScheduleSettings extends EditScheduleSettings { updated_at: number; } export interface FormattedAutomationSettings extends EditAutomationSettings { updated_at: number; } export interface FormattedLpSettings extends EditLpSettings { updated_at: number; } export interface FormattedMetadataSettings extends EditMetadataSettings { updated_at: number; } export interface FormattedDepositsSettings extends EditDepositsSettings { } export interface FormattedForceRebalanceSettings extends EditForceRebalanceSettings { updated_at: number; } export interface FormattedCustomRebalanceSettings extends EditCustomRebalanceSettings { updated_at: number; } export interface FormattedAddTokenSettings extends EditAddTokenSettings { updated_at: number; } export interface FormattedUpdateWeightsSettings extends EditUpdateWeightsSettings { updated_at: number; } export interface FormattedMakeDirectSwapSettings extends EditMakeDirectSwapSettings { updated_at: number; } export interface FormattedBasket { pubkey: string; name: string; symbol: string; uri: string; version: number; own_address: string; mint: string; supply_outstanding: number; creator: string; host: string; basket_type: FormattedBasketType; bounty_mint: string; bounty_balance: number; start_price: number; high_watermark: number; active_rebalance: number; active_withdraws: number; active_managements: number; last_automation_execution_timestamp: number; creator_settings: FormattedCreatorSettings; manager_settings: FormattedManagersSettings; fee_settings: FormattedFeeSettings; schedule_settings: FormattedScheduleSettings; automation_settings: FormattedAutomationSettings; lp_settings: FormattedLpSettings; metadata_settings: FormattedMetadataSettings; deposits_settings: FormattedDepositsSettings; force_rebalance_settings: FormattedForceRebalanceSettings; custom_rebalance_settings: FormattedCustomRebalanceSettings; add_token_settings: FormattedAddTokenSettings; update_weights_settings: FormattedUpdateWeightsSettings; make_direct_swap_settings: FormattedMakeDirectSwapSettings; accumulated_fees: FormattedAccumulatedFees; lookup_tables: FormattedLookupTables; composition: FormattedAsset[]; } export interface BasketFees { symmetryFees: BN; creatorFees: BN; hostFees: BN; managersFees: BN; } export declare const BasketFeesLayout: any; export interface FormattedWithdrawBasketFees { pubkey: string; basket: string; rent_payer: string; owners: string[]; owners_weights: number[]; accumulated_tokens: string[]; accumulated_fees: number[]; } export interface WithdrawBasketFees { basket: PublicKey; rentPayer: PublicKey; owners: PublicKey[]; ownersWeights: number[]; accumulatedTokens: PublicKey[]; accumulatedFees: BN[]; ownAddress?: PublicKey; formatted?: FormattedWithdrawBasketFees; } export declare const WithdrawBasketFeesLayout: any; export interface LookupTables { active: PublicKey[]; temp: PublicKey[]; } export declare const LookupTablesLayout: any; export interface Asset { mint: PublicKey; amount: BN; weight: number; active: number; oracleAggregator: OracleAggregator; price?: OraclePrice; value?: Decimal; } export declare const AssetLayout: any; export interface Metadata { symbol: string; name: string; uri: string; } export interface Basket { version: number; ownAddress: PublicKey; mint: PublicKey; supplyOutstanding: BN; settings: BasketSettings; accumulatedFees: BasketFees; lookupTables: LookupTables; numTokens: number; composition: Asset[]; lutPubkeys?: AddressLookupTableAccount[]; metadata?: Metadata; tvl?: Decimal; price?: Decimal; formatted?: FormattedBasket; } export declare const BasketLayout: any;