import type { DeliveryTarget } from "./impl/deliver/index.js"; import type { DeliverResult, NotifyMessage } from "./impl/deliver/type.js"; import { undeterminedCapabilities } from "./impl/capabilities/index.js"; import type { HostCapabilities } from "./impl/capabilities/type.js"; export type { NotifyMessage, NotifySeverity } from "./impl/deliver/type.js"; export type { BarkTarget } from "./impl/bark/type.js"; export type { WebhookTarget } from "./impl/webhook/type.js"; export type { NotifyFrame } from "./impl/browser/type.js"; export type { DeliveryTarget } from "./impl/deliver/index.js"; export type { CapabilityDimension, CheckedDimension, HostCapabilities, PackageManager, Remediation, RemediationCode, RemediationParams, Verdict, } from "./impl/capabilities/type.js"; /** 投递:消息与目标全部由外部传入;结果与 `targets` 同序,逐目标 fail-soft。 */ export declare function deliver(message: NotifyMessage, targets: DeliveryTarget[]): Promise; /** * 宿主能力自检。**调用方负责缓存**:探测会起子进程,每个请求各探一次就是把用户机器当靶场。 * 探测只读(只向 `org.freedesktop.DBus` 问 owner 与可激活清单),不触发任何服务激活。 */ export declare function probeCapabilities(): Promise; /** 本进程的平台事实。与能力面同一来源(同一端口),api 域不得直读 `process.platform`——那样三平台断言写不出来。 */ export declare function hostPlatform(): string; /** * 探测没能给出结论时的诚实回答(两个维度都「无法判定」)。 * 出口在这里,是为了让「探测失败/超预算」的兜底形状只有一份:调用方各自就地拼一个字面量, * 很快就会漂成三种形状,而客户端只认得其中一种。 */ export { undeterminedCapabilities }; /** * 草稿测试(dry-run)的单目标出站:api 域经它把内存里的目标打出去,全程 bypass 正常管线的 * 写面(不 settle、不归档、不 emit 帧,browser 的 emit 由它在内部接空)。bark / webhook 走 * SSRF 安全 fetch,system 复用平台能力缓存只读。这是 api 域唯一被允许的「伪造投递」入口—— * 只接受已构造好的单个目标与固定的测试文案,不接受任意通知请求(见实现模块头的 bypass 清单)。 * * 结果理由契约:返回的 failed / skipped 理由已按 FAILURE_REASON_MAX 截断并经 normalizeReason * 收编(与状态落盘面同一条上限)——调用方(api 域写响应处)只做形状收窄,不再截第二遍, * 跨模块值边因此不增加(目录门面只认 interface.ts,见 verify-dir-imports)。 */ export { dryRunTarget } from "./impl/dry-run/index.js"; /** * 释放音频临时目录(自播合成音的落盘处):组合根在卸载时调一次,端口侧在进程退出时也挂一次。 * 幂等、never-throw——它是本域唯一会把**目录**删掉的入口(按次删目录会让并发投递互踩, * 故日常只 unlink 本次文件,目录留到这里)。 */ export { releaseSoundTemps } from "./impl/system/tone-file.js";