import type { ProducerConfig } from "./config"; import type { CallBack, ProducerLog, ProducerLogGroup } from "./types"; /** * TLS Producer 核心实现。 * * - 支持异步发送与批量聚合; * - 支持 TotalSizeLnBytes 与 MaxBlockSec 控制阻塞策略; * - 支持 MaxSenderCount 控制并发度; * - 支持 Retries、指数退避与 NoRetryStatusCodeList; * - 支持优雅关闭(Close)与强制关闭(ForceClose)。 */ export declare class Producer { private readonly config; private readonly service; private readonly retryQueue; private readonly sender; private readonly threadPool; private readonly dispatcher; /** 当前 Producer 已缓存日志估算大小总和,单位字节。 */ private bufferedSize; private started; private closed; private closingPromise; constructor(config?: ProducerConfig); /** 获取一份带默认值的 Producer 配置,方便调用方自定义修改。 */ static getDefaultProducerConfig(): ProducerConfig; /** 启动内部调度与重试逻辑,必须在第一次发送前调用。 */ Start(): void; /** * 发送单条日志。 * * @param shardHash 分区路由键,可为空字符串。 * @param topic 日志主题 ID。 * @param source 日志来源标识。 * @param filename 日志文件名标识。 * @param log 日志内容。 * @param callBack 发送结果回调。 */ SendLog(shardHash: string, topic: string, source: string, filename: string, log: ProducerLog, callBack?: CallBack): Promise; /** * 发送一组日志。 * * @param shardHash 分区路由键,可为空字符串。 * @param topic 日志主题 ID。 * @param source 日志来源标识。 * @param filename 日志文件名标识。 * @param logGroup 日志组。 * @param callBack 发送结果回调。 */ SendLogs(shardHash: string, topic: string, source: string, filename: string, logGroup: ProducerLogGroup, callBack?: CallBack): Promise; /** * 动态重置访问密钥与安全令牌,便于轮转 AK/SK 或使用 STS。 */ ResetAccessKeyToken(accessKeyID: string, accessKeySecret: string, securityToken: string): void; /** * 优雅关闭:拒绝新写入,尽可能发送所有在缓冲区与重试队列中的数据后返回。 */ Close(): Promise; /** * 强制关闭:立即停止调度与重试,丢弃未发送的数据。 */ ForceClose(): Promise; /** 当前 Producer 缓存中的日志数据估算大小。 */ getBufferedSize(): number; private ensureStarted; /** * 根据 TotalSizeLnBytes 与 MaxBlockSec 控制等待/失败策略。 */ private waitTime; private putToDispatcher; } export type { ProducerConfig } from "./config"; export type { Attempt, Result, CallBack } from "./types";