import BN from 'bn.js'; import { PublicKey } from '@solana/web3.js'; import { Bounty } from './bounty'; import { FormattedOracleType } from '../oracle'; export type FormattedIntentStatus = "not_active" | "active" | "reverted" | "completed"; export declare const INTENT_STATUS_STRINGS: Map; export type FormattedTaskType = "unknown" | "edit_creator" | "edit_manager_settings" | "edit_fee_settings" | "edit_schedule_settings" | "edit_automation_settings" | "edit_lp_settings" | "edit_metadata_settings" | "edit_deposits_settings" | "edit_force_rebalance_settings" | "edit_custom_rebalance_settings" | "edit_add_token_delay" | "edit_update_weights_delay" | "edit_make_direct_swap_delay" | "add_token" | "update_weights" | "make_direct_swap"; export declare const TASK_TYPE_STRINGS: Map; export interface FormattedBountySchedule { min_bounty: number; max_bounty: number; min_bounty_until: number; max_bounty_after: number; } export interface FormattedBounty { bounty_depositor: string; bounty_mint: string; bounty_per_price_update_task: FormattedBountySchedule; bounty_per_task: FormattedBountySchedule; bounty_total: number; bounty_left: number; } export interface FormattedIntent { pubkey: string; manager: string; status: FormattedIntentStatus; activation_timestamp: number; expiration_timestamp: number; basket: string; bounty: FormattedBounty; task_type: FormattedTaskType; task_data: Settings; } export declare const INTENT_TASK_DATA_SIZE = 600; export declare enum IntentStatus { NotActive = 0, Active = 1, Reverted = 2, Completed = 3 } export interface Intent { manager: PublicKey; status: IntentStatus; activationTimestamp: BN; expirationTimestamp: BN; basket: PublicKey; bounty: Bounty; taskType: TaskType; taskData: number[]; ownAddress?: PublicKey; formatted?: FormattedIntent; } export declare const IntentLayout: any; export declare enum TaskType { Unknown = 0, EditCreator = 1, EditManagerSettings = 2, EditFeeSettings = 3, EditScheduleSettings = 4, EditAutomationSettings = 5, EditLpSettings = 6, EditMetadataSettings = 7, EditDepositsSettings = 8, EditForceRebalanceSettings = 9, EditCustomRebalanceSettings = 10, EditAddTokenDelay = 11, EditUpdateWeightsDelay = 12, EditMakeDirectSwapDelay = 13, AddToken = 14, UpdateWeights = 15, MakeDirectSwap = 16 } export declare function taskTypeFromU8(value: number): TaskType; export interface TaskContext { basket: string; manager: string; activation_timestamp?: number; expiration_timestamp?: number; min_bounty?: number; max_bounty?: number; } export interface EditCreatorSettings { creator: string; } export interface EditManagerSettings { managers: { pubkey: string; fee_split_weight_bps: number; authorities: { managers: boolean; fees: boolean; schedule: boolean; automation: boolean; lp: boolean; metadata: boolean; deposits: boolean; force_rebalance: boolean; custom_rebalance: boolean; add_token: boolean; update_weights: boolean; make_direct_swap: boolean; }; }[]; modification_delay: number; } export interface EditFeeSettings { creator_deposit_fee_bps: number; creator_withdraw_fee_bps: number; creator_management_fee_bps: number; creator_performance_fee_bps: number; managers_deposit_fee_bps: number; managers_withdraw_fee_bps: number; managers_management_fee_bps: number; managers_performance_fee_bps: number; basket_deposit_fee_bps: number; basket_withdraw_fee_bps: number; modification_delay: number; } export interface EditScheduleSettings { cycle_start_time: number; cycle_duration: number; deposits_start: number; deposits_end: number; automation_start: number; automation_end: number; management_start: number; management_end: number; modification_delay: number; } export interface EditAutomationSettings { enabled: boolean; rebalance_slippage_threshold_bps: number; per_trade_rebalance_slippage_threshold_bps: number; rebalance_activation_threshold_abs_bps: number; rebalance_activation_threshold_rel_bps: number; rebalance_activation_cooldown: number; modification_delay: number; } export interface EditLpSettings { enabled: boolean; lp_threshold_bps: number; modification_delay: number; } export interface EditMetadataSettings { symbol: string; name: string; uri: string; modification_delay: number; } export interface EditDepositsSettings { enabled: boolean; } export interface EditForceRebalanceSettings { enabled: boolean; modification_delay: number; } export interface EditCustomRebalanceSettings { enabled: boolean; modification_delay: number; } export interface EditAddTokenSettings { modification_delay: number; } export interface EditUpdateWeightsSettings { modification_delay: number; } export interface EditMakeDirectSwapSettings { modification_delay: number; } export interface OracleInput { oracle_type: FormattedOracleType; account_lut_id: number; account_lut_index: number; account: string; weight: number; is_required: boolean; conf_thresh_bps: number; volatility_thresh_bps: number; max_slippage_bps: number; min_liquidity: number; staleness_thresh: number; staleness_conf_rate_bps: number; token_decimals: number; twap_seconds_ago: number; twap_secondary_seconds_ago: number; } export interface AddOrEditTokenInput { token_mint: string; active: boolean; min_oracles_thresh: number; min_conf_bps: number; conf_thresh_bps: number; conf_multiplier: number; oracles: OracleInput[]; } export interface UpdateWeightsInput { token_weights: { mint: string; weight_bps: number; }[]; token_mints_hash?: number[]; } export interface MakeDirectSwapInput { from_token_mint: string; to_token_mint: string; amount_from: number; amount_to: number; } export type Settings = EditCreatorSettings | EditManagerSettings | EditFeeSettings | EditScheduleSettings | EditAutomationSettings | EditLpSettings | EditMetadataSettings | EditDepositsSettings | EditForceRebalanceSettings | EditCustomRebalanceSettings | EditAddTokenSettings | EditUpdateWeightsSettings | EditMakeDirectSwapSettings | AddOrEditTokenInput | UpdateWeightsInput | MakeDirectSwapInput;