/// <reference types="node" />
import { EventEmitter } from "events";
import { EventEmitterTyped } from "@renproject/utils";
import { GatewayTransaction } from "../gatewayTransaction";
export declare class TransactionEmitter<ToPayload extends {
    chain: string;
    txConfig?: any;
} = any> extends EventEmitter implements EventEmitterTyped<{
    transaction: [GatewayTransaction<ToPayload>];
}> {
    private getTransactions;
    constructor(getTransactions: () => Array<GatewayTransaction<ToPayload>>);
    addListener: <Event_1 extends "transaction">(event: Event_1, callback: Event_1 extends "transaction" ? (deposit: GatewayTransaction<ToPayload>) => void : never) => this;
    /**
     * `on` creates a new listener to `"transaction"` events, returning
     * [[GatewayTransaction]] instances.
     *
     * `on` extends `EventEmitter.on`, modifying it to immediately return all
     * previous `"transaction"` events, in addition to new events, when a new
     * listener is created.
     *
     * @category Main
     */
    on: <Event_1 extends "transaction">(event: Event_1, callback: (...values: {
        transaction: [GatewayTransaction<ToPayload>];
    }[Event_1]) => void | Promise<void>) => this;
    once: <Event_1 extends "transaction">(event: Event_1, callback: (...values: {
        transaction: [GatewayTransaction<ToPayload>];
    }[Event_1]) => void | Promise<void>) => this;
}
//# sourceMappingURL=transactionEmitter.d.ts.map