///
///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export declare enum VaultStatus {
Active = 0,
Finalized = 1,
Reverted = 2
}
export type ConditionnalVault = {
buffer: Buffer;
status: VaultStatus;
settlementAuthority: PublicKey;
underlyingTokenMint: PublicKey;
underlyingTokenAccount: PublicKey;
conditionalOnFinalizeTokenMint: PublicKey;
conditionalOnRevertTokenMint: PublicKey;
pdaBump: number;
decimals: number;
};
export declare const conditionnalVaultStruct: BeetStruct>;
export type TwapOracle = {
lastUpdatedSlot: BigNumber;
lastPrice: BigNumber;
lastObservation: BigNumber;
aggregator: BigNumber;
maxObservationChangePerUpdate: BigNumber;
initialObservation: BigNumber;
};
export declare const twapOracleStruct: BeetStruct>;
export type Amm = {
buffer: Buffer;
bump: number;
createdAtSlot: BigNumber;
lpMint: PublicKey;
baseMint: PublicKey;
quoteMint: PublicKey;
baseMintDecimals: number;
quoteMintDecimals: number;
baseAmount: BigNumber;
quoteAmount: BigNumber;
oracle: TwapOracle;
};
export declare const ammStruct: BeetStruct>;
export type Dao = {
buffer: Buffer;
treasuryPdaBump: number;
treasury: PublicKey;
tokenMint: PublicKey;
usdcMint: PublicKey;
proposalCount: number;
passThresholdBps: number;
slotsPerProposal: BigNumber;
twapInitialObservation: BigNumber;
twapMaxObservationChangePerUpdate: BigNumber;
minQuoteFutarchicLiquidity: BigNumber;
minBaseFutarchicLiquidity: BigNumber;
};
export declare const daoStruct: BeetStruct>;
export declare enum ProposalState {
Pending = 0,
Passed = 1,
Failed = 2,
Executed = 3
}
export type ProposalAccount = {
pubkey: PublicKey;
isSigner: boolean;
isWritable: boolean;
};
export declare const proposalAccountStruct: BeetStruct>;
export type ProposalInstruction = {
programId: PublicKey;
accounts: ProposalAccount[];
data: number[];
};
export declare const proposalInstructionStruct: FixableBeetStruct>;
export type Proposal = {
buffer: Buffer;
number: number;
proposer: PublicKey;
descriptionUrl: number[];
slotEnqueued: BigNumber;
state: ProposalState;
instruction: ProposalInstruction;
passAmm: PublicKey;
failAmm: PublicKey;
baseVault: PublicKey;
quoteVault: PublicKey;
dao: PublicKey;
passLpTokensLocked: BigNumber;
failLpTokensLocked: BigNumber;
nonce: BigNumber;
pdaBump: number;
};
export declare const proposalStruct: FixableBeetStruct>;
export type Launch = {
buffer: Buffer;
pdaBump: number;
minimumRaiseAmount: BigNumber;
launchAuthority: PublicKey;
launchSigner: PublicKey;
launchSignerPdaBump: number;
launchUsdcVault: PublicKey;
launchTokenVault: PublicKey;
tokenMint: PublicKey;
usdcMint: PublicKey;
unixTimestampStarted: BigNumber;
totalCommittedAmount: BigNumber;
state: LaunchState;
seqNum: BigNumber;
secondsForLaunch: number;
dao: PublicKey;
daoTreasury: PublicKey;
};
export declare const launchStruct: BeetStruct>;
export declare enum LaunchState {
Initialized = 0,
Live = 1,
Complete = 2,
Refunding = 3
}
export type FundingRecord = {
buffer: Buffer;
pdaBump: number;
funder: PublicKey;
launch: PublicKey;
committedAmount: BigNumber;
seqNum: BigNumber;
};
export declare const fundingRecordStruct: BeetStruct>;