import { Schema, Model } from 'mongoose';
export interface IRouter {
    _id: string;
    baseTokenForPair: string;
    router: string;
    positionManager: string;
    version: number;
    fee: Schema.Types.Decimal128;
    per: Schema.Types.Decimal128;
    pair: string;
    lpAmount: Schema.Types.Decimal128;
    isLPBurn: boolean;
    lpLockUp: number;
}
export interface IMemeTokenMetaInfo {
    seo: string;
    logo: string;
    banner: string;
    twitter: string;
    telegram: string;
    website: string;
    protocol: string;
    subOwner: string;
    seed: string;
    description: string;
}
export interface ITokenInfo {
    name: string;
    symbol: string;
    decimals: number;
    totalSupply: Schema.Types.Decimal128;
}
export interface IMemeToken extends Document {
    _id: string;
    chainId: number;
    address: string;
    packageIndex: number;
    owner: string;
    volume: Schema.Types.Decimal128;
    reserveToken: Schema.Types.Decimal128;
    reserveETH: Schema.Types.Decimal128;
    currentPrice: Schema.Types.Decimal128;
    currentUSDPrice: bigint;
    initialETH: Schema.Types.Decimal128;
    initialToken: Schema.Types.Decimal128;
    initialPrice: Schema.Types.Decimal128;
    initialBuyAmount: Schema.Types.Decimal128;
    isListed: boolean;
    isListedAt: number;
    isCancelled: boolean;
    isCancelledAt: number;
    isHot: boolean;
    isHardCapReached: boolean;
    isHardCapReachedAt: number;
    isUniswapV3Compatible: boolean;
    buyRefFee: Schema.Types.Decimal128;
    sellFee: Schema.Types.Decimal128;
    buyFee: Schema.Types.Decimal128;
    hardCap: Schema.Types.Decimal128;
    softCap: Schema.Types.Decimal128;
    initialMarketCap: Schema.Types.Decimal128;
    currentMarketCap: Schema.Types.Decimal128;
    liqHardCap: Schema.Types.Decimal128;
    liqSoftCap: Schema.Types.Decimal128;
    softPercent: Schema.Types.Decimal128;
    hardPercent: Schema.Types.Decimal128;
    maxAllocationPerUser: Schema.Types.Decimal128;
    routers: IRouter[];
    metaUri: string;
    metaInfo: IMemeTokenMetaInfo;
    metaInfoUpdatedAt: number;
    isWhitelist: boolean;
    whitelistId: string;
    whitelist: string[];
    whitelistMerkleRoot: string;
    maxAllocationPerWhitelistedUser: Schema.Types.Decimal128;
    whitelistUpdatedAt: number;
    tokenInfo: ITokenInfo;
    isXSale: boolean;
    keyForXSale: string;
    startTime: Date;
    endTime: Date;
    likedBy: {
        network: string;
        address: string;
    }[];
}
export declare const MemeTokenModel: Model<IMemeToken>;
