import { Action, Plugin } from '@elizaos/core';
import { z } from 'zod';

/**
 * Validation schemas for inputs
 */
declare const addressSchema: z.ZodString;
declare const txHashSchema: z.ZodString;
declare const chainSchema: z.ZodEnum<["ethereum", "polygon", "base", "arbitrum", "optimism", "bsc"]>;
/**
 * Supported blockchain chains
 */
type SupportedChain = z.infer<typeof chainSchema>;
/**
 * Extracted blockchain data from text
 */
interface BlockchainData {
    addresses: string[];
    txHashes: string[];
    chains: string[];
}
/**
 * Token price request parameters
 */
interface TokenPriceParams {
    chain: SupportedChain;
    token_address: string;
    timestamp?: string;
}

/**
 * Action: Get Recent Transactions
 * Handles queries like: "what was the activity of 0x625758C705bf970375fF780f3544C1ddc8eeb6Ab on ethereum?"
 */
declare const getRecentTxsAction: Action;

/**
 * Action: Get Translated Transaction
 * Handles queries like: "what happened in 0x700d06dc473f95530a0dfa04c1fe679aecd722d2a14e07170704fb7a8d2381f6 on ethereum?"
 */
declare const getTranslatedTxAction: Action;

/**
 * Action: Get Token Price
 * Handles queries like: "what is the price of the 0xae7ab96520de3a18e5e111b5eaab095312d7fe84 token on ethereum?"
 */
declare const getTokenPriceAction: Action;

/**
 * Rate limiting utility to prevent API abuse
 * 2 second intervals, max 30 requests per minute
 */
declare class RateLimiter {
    private requests;
    private lastRequest;
    private readonly maxRequests;
    private readonly windowMs;
    private readonly minInterval;
    waitForNextRequest(): Promise<void>;
}
declare const rateLimiter: RateLimiter;

/**
 * Utility to extract addresses, tx hashes, and chains from text
 */
declare function extractBlockchainData(text: string): BlockchainData;

declare const novesPlugin: Plugin & {
    repository?: string;
};

export { type BlockchainData, RateLimiter, type SupportedChain, type TokenPriceParams, addressSchema, chainSchema, novesPlugin as default, extractBlockchainData, getRecentTxsAction, getTokenPriceAction, getTranslatedTxAction, novesPlugin, rateLimiter, txHashSchema };
