import { Kafka } from 'kafkajs';
import { IAction, SagaProducerConfig } from './types';
import pino from 'pino';
export declare class ThrottledProducer {
    protected kafka: Kafka;
    protected producerConfig: SagaProducerConfig;
    recordsSent: number;
    private producer;
    private isConnected;
    private intervalTimeout;
    private recordQueue;
    private isFlushing;
    private logger;
    constructor(kafka: Kafka, producerConfig?: SagaProducerConfig, logger?: pino.Logger);
    putAction: <Action extends IAction<import("./types").DefaultPayload>>(action: Action, messageConfig?: {
        /**
         * If using transactionId as a message key, messages in a transaction will be processed in order.
         */
        useTransactionIdAsKey?: boolean;
    }) => Promise<void>;
    connect: () => Promise<void>;
    disconnect: () => Promise<void>;
    private createProducer;
    private flush;
}
