import { DriftMarketInfo, DriftPriorityFeeLevels } from './driftPriorityFeeMethod';
import { PriorityFeeSubscriberMapConfig } from './types';
/**
 * takes advantage of /batchPriorityFees endpoint from drift hosted priority fee service
 */
export declare class PriorityFeeSubscriberMap {
    frequencyMs: number;
    intervalId?: ReturnType<typeof setTimeout>;
    driftMarkets?: DriftMarketInfo[];
    driftPriorityFeeEndpoint?: string;
    feesMap: Map<string, Map<number, DriftPriorityFeeLevels>>;
    constructor(config: PriorityFeeSubscriberMapConfig);
    private updateFeesMap;
    subscribe(): Promise<void>;
    unsubscribe(): Promise<void>;
    load(): Promise<void>;
    updateMarketTypeAndIndex(driftMarkets: DriftMarketInfo[]): void;
    getPriorityFees(marketType: string, marketIndex: number): DriftPriorityFeeLevels | undefined;
}
/** Example usage:
async function main() {
    const driftMarkets: DriftMarketInfo[] = [
        { marketType: 'perp', marketIndex: 0 },
        { marketType: 'perp', marketIndex: 1 },
        { marketType: 'spot', marketIndex: 2 }
    ];

    const subscriber = new PriorityFeeSubscriberMap({
        driftPriorityFeeEndpoint: 'https://dlob.drift.trade',
        frequencyMs: 5000,
        driftMarkets
    });
    await subscriber.subscribe();

    for (let i = 0; i < 20; i++) {
        await new Promise(resolve => setTimeout(resolve, 1000));
        driftMarkets.forEach(market => {
            const fees = subscriber.getPriorityFees(market.marketType, market.marketIndex);
            console.log(`Priority fees for ${market.marketType} market ${market.marketIndex}:`, fees);
        });
    }


    await subscriber.unsubscribe();
}

main().catch(console.error);
*/
//# sourceMappingURL=priorityFeeSubscriberMap.d.ts.map