import { Edge } from "./Edge";
import { Path } from "./Path";
import { ThreadSafeGraphImpl } from './ThreadSafeGraphImpl';
export interface MarketUpdate {
    fromAsset: string;
    toAsset: string;
    price: number;
    timestamp: number;
    maxTradeSize?: number;
}
export interface EdgeMetadata {
    lastUpdated: number;
    maxAge: number;
    maxTradeSize?: number;
    source: string;
}
export declare class RealTimeGraphImpl extends ThreadSafeGraphImpl {
    private edgeMetadata;
    private edgeIndex;
    private updateQueue;
    private batchSize;
    private batchTimeoutMs;
    private batchTimeout;
    private isProcessingBatch;
    constructor(batchSize?: number, batchTimeoutMs?: number);
    addMarketUpdate(update: MarketUpdate): Promise<void>;
    addMarketUpdates(updates: MarketUpdate[]): Promise<void>;
    private processBatch;
    private applyUpdates;
    private applyUpdateInternal;
    getArbitrageOpportunities(maxAge?: number): Promise<Path[]>;
    private cleanStaleEdges;
    private findNegativeCycles;
    private buildCycleFrom;
    private getNodeKey;
    getOptimalPath(from: string, to: string, maxAge?: number): Promise<Path | null>;
    getEdgeMetadata(edge: Edge): Promise<EdgeMetadata | undefined>;
    validateTradeSize(path: Path, tradeSize: number): Promise<boolean>;
    getStatistics(): {
        totalVertices: number;
        totalEdges: number;
        queueSize: number;
        isProcessing: boolean;
    };
    destroy(): Promise<void>;
}
//# sourceMappingURL=RealTimeGraphImpl.d.ts.map