import { Logger } from '../utils/logger';
import { SupportedSQSEventName } from '../prophet/types';
import { NetworkIdT3rn } from '../pricer/types';
import { EventData } from '../types';
import { SQSProcessingResult } from './sqs.dispatcher';
export declare class SQSPublisher {
    private sqsService;
    private config;
    private prometheus;
    private startedQueues;
    private dispatchesPerMinute;
    private unhlandledDispatchesPerMinute;
    private errorDispatchesPerMinute;
    private duplicatedDispatchesPerMinute;
    private handledDispatchesPerMinute;
    private sieve;
    private redisClient;
    constructor(sqsService: any, config: any, prometheus: any);
    reportStatsPerQueue(queueName: string): Promise<void>;
    init(): Promise<void>;
    reportStats(): void;
    resetQueueRateCounters(queueName: string): void;
    generateMessageId(args: any[]): string;
    safeAddItemToSieve(messageId: string, eventName: SupportedSQSEventName, orderId: string): Promise<boolean>;
    pushSQSEvent(networkId: NetworkIdT3rn, contractName: string, eventName: SupportedSQSEventName, eventData: EventData, args: any[], orderId: string, sourceNetwork: NetworkIdT3rn, destinationNetwork: NetworkIdT3rn, childLogger: Logger, queueName?: any): Promise<SQSProcessingResult>;
}
//# sourceMappingURL=sqs.publisher.d.ts.map