export interface AxiomProtocolDetails {
    isTokenSideX: boolean;
    tokenProgram: string;
    pairSolAccount: string;
    pairTokenAccount: string;
}
export interface AxiomPairInfoResponse {
    pairAddress: string;
    signature: string;
    tokenAddress: string;
    tokenTicker: string;
    pairTokenAccount: string;
    pairSolAccount: string;
    tokenName: string;
    tokenImage: string;
    tokenUri: string;
    tokenDecimals: number;
    protocol: string;
    protocolDetails: PumpAmmDetails | RaydiumV4Details | RaydiumCpmDetails;
    website: string | null;
    twitter: string | null;
    telegram: string | null;
    discord: string | null;
    mintAuthority: string | null;
    openTrading: string;
    initialLiquiditySol: number;
    initialLiquidityToken: number;
    supply: number;
    deployerAddress: string;
    top10Holders: number;
    lpBurned: number;
    freezeAuthority: string | null;
    extra: AxiomExtra;
    slot: number;
    createdAt: string;
    updatedAt: string;
    dexPaid: boolean;
    isWatchlisted: boolean;
    twitterHandleHistory: TwitterHandle[];
}
export interface AxiomTopTradersItem {
    makerAddress: string;
    buyTransactions: number;
    sellTransactions: number;
    tokensBought: number;
    tokensSold: number;
    solInvested: number;
    solSold: number;
    usdInvested: number;
    usdSold: number;
    tokenBalance: number;
    walletAddress?: string;
    isInsider: boolean;
    isBundler: boolean;
    isSniper: boolean;
    isProUser: boolean;
}
export type AxiomTopTradersResponse = AxiomTopTradersItem[];
export interface AxiomTransactionItem {
    created_at: string;
    liquidity_sol: number;
    liquidity_token: number;
    maker_address: string;
    pair_address: string;
    price_sol: number;
    price_usd: number;
    token_amount: number;
    signature: string;
    total_sol: number;
    total_usd: number;
    type: 'buy' | 'sell';
}
export type AxiomTransactionsResponse = AxiomTransactionItem[];
export interface AxiomTokenInfoResponse {
    top10HoldersPercent: number;
    devHoldsPercent: number;
    snipersHoldPercent: number;
    insidersHoldPercent: number;
    bundlersHoldPercent: number;
    dexPaid: boolean;
    numHolders: number;
    numBotUsers: number;
    numBluechipHolders: number;
}
export interface AxiomDevTokensResponse {
    tokens: AxiomToken[];
    counts: Counts;
}
export interface Counts {
    totalCount: number;
    migratedCount: number;
}
export interface AxiomToken {
    pairAddress: string;
    tokenAddress: string;
    tokenTicker: string;
    tokenName: string;
    tokenImage: string;
    protocol: string;
    supply: number;
    extra: AxiomExtra;
    createdAt: string;
    migrated: boolean;
    liquiditySol: number;
    liquidityToken: number;
    hourlyVolumeSol: number;
}
export interface AxiomTokenAnalysisResponse {
    creatorRiskLevel: 'Low' | 'Medium' | 'High';
    creatorRugCount: number;
    creatorTokenCount: number;
    topMarketCapCoins: AxiomTokenAnalysisItem[];
    topOgCoins: AxiomTokenAnalysisItem[];
}
export interface AxiomTokenAnalysisItem {
    tokenTicker: string;
    tokenName: string;
    pairAddress: string;
    tokenAddress: string;
    image: string;
    marketCap: number;
    createdAt: string;
    lastTradeTime: string;
    migrated: boolean;
    bondingCurvePercent: number;
}
export interface AxiomPairStatsItem {
    buyCount: number;
    sellCount: number;
    buyVolumeSol: number;
    sellVolumeSol: number;
    priceSol: number;
    createdAt: string;
}
export type AxiomPairStatsResponse = AxiomPairStatsItem[];
export interface AxiomHolderDataItem {
    walletAddress: string;
    tokenBalance: number;
    isInsider: boolean;
    isBundler: boolean;
    createdAt: number;
    solBalance: number;
    buyTransactions: number | null;
    sellTransactions: number | null;
    tokensBought: number | null;
    tokensSold: number | null;
    solInvested: number | null;
    solSold: number | null;
    usdInvested: number | null;
    usdSold: number | null;
    traderTokenBalance: number | null;
    isProUser: boolean;
    isSniper: boolean;
}
export type PairChartInterval = '1s' | '5s' | '15s' | '30s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '4h' | '6h' | '12h' | '24h';
export type AxiomHolderDataResponse = AxiomHolderDataItem[];
export type AxiomMemeTrendingResponse = AxiomMemeTrendingItem[];
export interface AxiomMemeTrendingItem {
    pairAddress: string;
    tokenAddress: string;
    tokenName: string | null;
    tokenTicker: string | null;
    tokenImage: string | null;
    tokenDecimals: number;
    protocol: string;
    protocolDetails: PumpAmmDetails | RaydiumV4Details | RaydiumCpmDetails;
    prevMarketCapSol: number;
    marketCapSol: number;
    marketCapPercentChange: number;
    liquiditySol: number;
    liquidityToken: number;
    volumeSol: number;
    buyCount: number;
    sellCount: number;
    top10Holders: number;
    lpBurned: number;
    mintAuthority: string | null;
    freezeAuthority: string | null;
    dexPaid: boolean;
    website: string | null;
    twitter: string | null;
    telegram: string | null;
    discord: string | null;
    createdAt: string;
    extra: AxiomExtra | null;
    supply: number;
    twitterHandleHistory: TwitterHandle[];
}
export type PumpAmmDetails = AxiomProtocolDetails;
export interface RaydiumV4Details {
    id: string;
    lpMint: string;
    lpVault: string;
    version: number;
    baseMint: string;
    marketId: string;
    authority: string;
    baseVault: string;
    programId: string;
    quoteMint: string;
    lpDecimals: number;
    marketAsks: string;
    marketBids: string;
    openOrders: string;
    quoteVault: string;
    baseDecimals: number;
    targetOrders: string;
    marketVersion: number;
    quoteDecimals: number;
    withdrawQueue: string;
    marketAuthority: string;
    marketBaseVault: string;
    marketProgramId: string;
    marketEventQueue: string;
    marketQuoteVault: string;
    lookupTableAccount: string;
}
export interface RaydiumCpmDetails {
    lpMint: string;
    solVault: string;
    ammConfig: string;
    authority: string;
    tokenVault: string;
    tokenProgram: string;
    tradeFeeRate: number;
    observationState: string;
    transferFeeConfig: TransferFeeConfig;
}
export interface TransferFeeConfig {
    withheld_amount: number;
    newer_transfer_fee: TransferFee;
    older_transfer_fee: TransferFee;
    withdraw_withheld_authority: string;
    transfer_fee_config_authority: string;
}
export interface TransferFee {
    epoch: number;
    maximum_fee: number;
    transfer_fee_basis_points: number;
}
export interface AxiomExtra {
    migratedFrom: string;
    pumpDeployerAddress: string;
}
export interface TwitterHandle {
    handle: string;
    createdAt: string;
}
export interface AxiomBar {
    time: number;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
}
export interface AxiomPairChartResponse {
    bars: AxiomBar[];
    noData: boolean;
}
export interface AxiomPortfolioResponse {
    activePositions: AxiomPosition[];
    historyPositions: AxiomPosition[];
    topPositions: AxiomPosition[];
    transactions: AxiomTransaction[];
    balanceStats: AxiomBalanceStats;
    performanceMetrics: PerformanceMetrics;
    chartData: AxiomChartDatum[];
}
export interface AxiomPosition {
    tokenAddress: string;
    tokensBought: number;
    tokensSold: number;
    solReceived: number;
    solSpent: number;
    usdSpent: number;
    usdReceived: number;
    buyCount: number;
    sellCount: number;
    createdAt: Date;
    updatedAt: Date;
    remainingTokens: number;
    pairAddress: string;
    tokenTicker: string;
    tokenImage: string;
    tokenName: string;
    protocol: AxiomProtocol;
    priceSol: number;
    extra: Extra | null;
    tokenDecimals: number;
    liquiditySol: number;
    liquidityToken: number;
}
export interface Extra {
    migratedFrom: AxiomProtocol;
    pumpDeployerAddress: string;
}
export declare enum AxiomProtocol {
    MeteoraDLMM = "Meteora DLMM",
    PumpAMM = "Pump AMM",
    PumpV1 = "Pump V1",
    RaydiumV4 = "Raydium V4"
}
export interface AxiomBalanceStats {
    totalValueSol: number;
    availableBalanceSol: number;
    unrealizedPnlSol: number;
}
export interface AxiomChartDatum {
    value: number;
    time: number;
}
export interface PerformanceMetrics {
    sevenDay: AllTime;
    thirtyDay: AllTime;
    allTime: AllTime;
}
export interface AllTime {
    totalPnl: number;
    buyCount: number;
    sellCount: number;
    pnlBreakdown: PnlBreakdown;
}
export interface PnlBreakdown {
    over500Percent: number;
    between200And500Percent: number;
    between0And200Percent: number;
    between0AndNeg50Percent: number;
    underNeg50Percent: number;
}
export interface AxiomTransaction {
    makerAddress: string;
    pairAddress: string;
    signature: string;
    totalSol: number;
    totalUsd: number;
    liquiditySol: number;
    liquidityToken: number;
    type: 'buy' | 'sell';
    priceSol: number;
    priceUsd: number;
    createdAt: Date;
    tokenTicker: string;
    tokenDecimals: number;
    tokenName: string;
    tokenImage: string;
    protocol: AxiomProtocol;
    supply: number;
    marketCapSol: number;
    marketCapUsd: number;
    extra: Extra;
}
export type AxiomSearchResponse = AxiomSearchResponseItem[];
export interface AxiomSearchResponseItem {
    tokenName: string;
    tokenImage: string;
    tokenTicker: string;
    createdAt: Date;
    pairAddress: string;
    tokenAddress: string;
    protocol: string;
    supply: number;
    liquiditySol: number;
    liquidityToken: number;
    marketCapSol: number;
    bondingCurvePercent: number;
    volumeSol: number;
    extra: Extra;
    website: string | null;
    twitter: string | null;
    telegram: string | null;
    discord: string | null;
}
