/**
 * VoyagerDataOps — thin wrapper over Starknet JSON-RPC (free tier).
 *
 * Uses the Nethermind free RPC endpoint (no API key required).
 * Rate-limited via configurable inter-call delay.
 * No indexed REST API — pure JSON-RPC v0.7.
 */
export interface VoyagerConfig {
    /** Starknet JSON-RPC endpoint URL. Defaults to Nethermind free tier. */
    rpcUrl?: string;
    /** Minimum ms between consecutive RPC calls. Default: 100ms. */
    rateLimitMs?: number;
    /** Max events per getEvents call. Default: 1000. */
    chunkSize?: number;
}
export interface WalletEvent {
    walletAddress: string;
    txHash: string;
    blockNumber: number;
    eventData: string[];
}
export interface HealthCheckResult {
    blockNumber: number;
    latencyMs: number;
}
export declare class VoyagerDataOps {
    private readonly rpcUrl;
    private readonly rateLimitMs;
    private readonly chunkSize;
    private lastCallAt;
    private requestId;
    constructor(config?: VoyagerConfig);
    /**
     * Extract unique wallet addresses that interacted with a protocol contract.
     * Uses starknet_getEvents; the first element of event.data is the caller.
     *
     * @param contractAddress - Protocol contract (e.g. zkLend main contract)
     * @param eventSelector   - Event key selector (hex string, e.g. Deposit event)
     * @param limit           - Max wallets to return. Default: 100.
     */
    getProtocolWallets(contractAddress: string, eventSelector: string, limit?: number): Promise<string[]>;
    /**
     * Get events emitted by a specific wallet address for a given contract.
     */
    getWalletEvents(walletAddress: string, contractAddress: string, eventSelector: string): Promise<WalletEvent[]>;
    /**
     * Verify RPC connectivity and return current block number + latency.
     */
    healthCheck(): Promise<HealthCheckResult>;
    private getEvents;
    private rpcCall;
    private throttle;
}
export declare class VoyagerRpcError extends Error {
    readonly code: number;
    constructor(message: string, code: number);
}
//# sourceMappingURL=voyager.d.ts.map