/// <reference types="node" />
import { TransactionPool } from '@liskhq/lisk-transaction-pool';
import { Logger } from '../../logger';
import { Network } from '../network';
interface BroadcasterConfig {
    readonly limit: number;
    readonly interval: number;
}
export interface BroadcasterConstructor extends BroadcasterConfig {
    readonly transactionPool: TransactionPool;
    readonly network: Network;
}
interface BroadcasterInitArgs {
    readonly logger: Logger;
}
export declare class Broadcaster {
    private readonly _transactionPool;
    private readonly _network;
    private readonly _config;
    private _transactionIdQueue;
    private _logger;
    private _loopID?;
    constructor({ transactionPool, limit, interval, network }: BroadcasterConstructor);
    init(args: BroadcasterInitArgs): void;
    start(): void;
    stop(): void;
    enqueueTransactionId(transactionId: Buffer): boolean;
    private _broadcast;
}
export {};
