import { Commitment, PublicKey } from '@solana/web3.js'; export type RpcOptions = { skipPreflight?: boolean; microLamports?: number; computeBudget?: number; commitment?: Commitment; payer?: PublicKey; }; export type Pool = { address: string; id: number; question: string; authority: string; isFast: boolean; isFastMarketActive: boolean; }; export type Market = { address: string; bump: number; authority: string; marketId: string; hypePrice: string; flopPrice: string; hypeLiquidity: string; flopLiquidity: string; hypeShares: string; flopShares: string; volume: string; mint: string; updateTs: string; resolvedTs: string; nextOrderId: string; feeBps: number; isAllowedToPayout: boolean; payoutFeeAvailable: string; payoutFeeClaimed: string; marketFeeAvailable: string; marketFeeClaimed: string; marketStart: string; marketEnd: string; question: string; winningDirection: WinningDirection; marketLiquidityAtStart: string; payoutFee: number; customer: string; poolId: number; feeRecipient: string; }; export type UserTrade = { user: string; orders: Order[]; nonce: string; poseidon: string; isSubUser: boolean; }; export type Order = { ts: string; orderId: string; marketId: string; orderStatus: OrderStatus; price: string; totalShares: string; filledShares: string; orderType: OrderType; orderDirection: OrderDirection; orderSide: OrderSide; userNonce: string; authority: string; createdAt: string; isTrdPayout: boolean; }; export type BookOrder = { id: string; price: string; totalShares: string; filledShares: string; authority: string; orderDirection: OrderDirection; orderSide: OrderSide; userNonce: string; linkedBookOrderId: string; marketId: number; }; export declare enum WinningDirection { HYPE = "Hype", DRAW = "Draw", FLOP = "Flop", NONE = "None" } export declare enum OrderDirection { HYPE = "hype", FLOP = "flop" } export declare enum OrderStatus { INIT = "init", OPEN = "open", CLOSED = "closed", CLAIMED = "claimed", LIQUIDATED = "liquidated", WAITING = "waiting" } export declare enum OrderType { LIMIT = "limit", MARKET = "market" } export declare enum OrderSide { BID = "bid", ASK = "ask" } export type OrderDirectionEncoded = { hype: {}; } | { flop: {}; }; export type OrderTypeEncoded = { limit: {}; } | { market: {}; }; export type OrderSideEncoded = { bid: {}; } | { ask: {}; }; export type OrderStatusEncoded = { init: {}; } | { open: {}; } | { closed: {}; } | { claimed: {}; } | { liquidated: {}; } | { waiting: {}; }; export type WinningDirectionEncoded = { hype: {}; } | { flop: {}; } | { draw: {}; } | { none: {}; }; export type Customer = { id: number; authority: string; name: string; feeRecipient: string; feeBps: number; isVerified: boolean; address: string; }; export type StakeVault = { name: string; authority: string; amount: number; isLocked: boolean; tokenMint: string; amountPaid: number; tokenDecimals: number; tokenStaked: number; initTs: number; endTs: number; collection: string; week: number; revShareClaimed: number; revShareAvailable: number; }; export type Stake = { authority: string; initTs: number; checkedTs: number; claimed: number; available: number; amount: number; revShareCheckedTs: number; revShareClaimed: number; revShareAvailable: number; }; export type Unstake = { address: string; authority: string; amount: number; withdrawTs: number; }; export type ClaimVault = { address: string; authority: string; initTs: number; endTs: number; totalAmount: number; totalClaimed: number; totalUsers: number; claimedUsers: number; tokenPerUser: number; mint: string; isActive: boolean; name: string; isFirstComeFirstServed: boolean; merkleRoot: number[]; ts: number; }; export type ClaimedUser = { user: string; address: string; claimVault: string; amount: number; ts: number; }; export interface ClaimData { user: PublicKey; amount: number; } export interface MerkleProof { user: PublicKey; amount: number; proof: number[][]; } export type PlaceBidOrderArgs = { orders: { amount: number; price: number; orderDirection: OrderDirectionEncoded; marketId: number; }[]; isTrdPayout: boolean; }; export type PlaceAskOrderArgs = { orders: { amount: number; price: number; bidOrderId: number; userNonce: number; marketId: number; }[]; }; export type InitializeMarketArgs = { marketId: number; startTime: number; endTime: number; question: string; feeBps: number; customer: PublicKey | null; }; export type CreateCustomerArgs = { id: number; name: string; authority: PublicKey; feeRecipient: PublicKey; }; export type OpenOrderArgs = { marketId: number; amount: number; token: string; direction: OrderDirectionEncoded; mint: PublicKey; }; export type CreateMarketArgs = { markets: { marketId: number; startTime: number; endTime: number; question: string; feeBps: number; payoutFee: number; }[]; customer: PublicKey; poolId?: number; }; export type CreatePoolArgs = { poolId: number; question?: string; startTime: number; endTime: number; feeBps: number; payoutFee: number; customer: PublicKey; markets: { marketId: number; question: string; }[]; isFast?: boolean; }; export type CancelBidOrderArgs = { orders: { marketId: number; orderId: number; userNonce: number; orderDirection: OrderDirectionEncoded; }[]; }; export type CancelAskOrderArgs = { marketId: number; orders: { orderId: number; userNonce: number; orderDirection: OrderDirectionEncoded; }[]; }; export type MarketBidOrderArgs = { marketId: number; amount: number; orderDirection: OrderDirectionEncoded; isTrdPayout: boolean; }; export type MarketAskOrderArgs = { marketId: number; orders: { shares: number; bidOrderId: number; userNonce: number; }[]; orderDirection: OrderDirectionEncoded; isTrdPayout: boolean; }; export type CreateClaimVaultArgs = { totalAmount: number; totalUsers: number; mint: PublicKey; name: string; isFirstComeFirstServed: boolean; endTs: number; claimData: ClaimData[]; }; export type ClaimTokenArgs = { amount: number; claimVaultName: string; mint: PublicKey; claimData: ClaimData[]; isFirstComeFirstServed: boolean; }; export type UpdateClaimVaultIsActiveArgs = { isActive: boolean; claimVaultName: string; }; export type UpdateMarketWinningDirectionArgs = { marketId: number; poolId?: number; winningDirection: WinningDirectionEncoded; }; export type CloseOrderArgs = { marketId: number; orderId: number; userNonce: number; }; export type UpdateClaimVaultAmountArgs = { amount: number; newUsers: number; claimVaultName: string; mint: PublicKey; claimData: ClaimData[]; }; export type UpdateClaimVaultEndTsArgs = { endTs: number; claimVaultName: string; };