import { type CallbackWithPromise } from '../../apis/callbacks.ts'; import { type Message } from '../../protocol/records.ts'; import { kTransaction, kTransactionAddOffsets, kTransactionAddPartitions, kTransactionCancel, kTransactionCommitOffset, kTransactionEnd, kTransactionFindCoordinator } from '../../symbols.ts'; import { Base } from '../base/base.ts'; import { ProducerStream } from './producer-stream.ts'; import { Transaction } from './transaction.ts'; import { type ProduceOptions, type ProduceResult, type ProducerInfo, type ProducerOptions, type ProducerStreamOptions, type SendOptions } from './types.ts'; export declare function noopSerializer(data?: Buffer): Buffer | undefined; export declare class Producer extends Base> { #private; constructor(options: ProducerOptions); get producerId(): bigint | undefined; get producerEpoch(): number | undefined; get transaction(): Transaction | undefined; get coordinatorId(): number; get streamsCount(): number; close(force: boolean | CallbackWithPromise, callback?: CallbackWithPromise): void; close(force?: boolean): Promise; initIdempotentProducer(options: ProduceOptions, callback: CallbackWithPromise): void; initIdempotentProducer(options: ProduceOptions): Promise; send(options: SendOptions & { [kTransaction]?: number; }, callback: CallbackWithPromise): void; send(options: SendOptions & { [kTransaction]?: number; }): Promise; asStream(options?: ProducerStreamOptions): ProducerStream; beginTransaction(options: ProduceOptions, callback: CallbackWithPromise>): void; beginTransaction(options?: ProduceOptions): Promise>; [kTransactionFindCoordinator](callback: CallbackWithPromise): void; [kTransactionAddPartitions](transactionId: number, topicsPartitions: Map>, callback: CallbackWithPromise): void; [kTransactionAddOffsets](transactionId: number, groupId: string, callback: CallbackWithPromise): void; [kTransactionCommitOffset](transactionId: number, message: Message, callback: CallbackWithPromise): void; [kTransactionEnd](transactionId: number, commit: boolean, callback: CallbackWithPromise): void; [kTransactionCancel](transactionId: number, callback: CallbackWithPromise): void; }