/** * Controller notification policy on top of the durable `Noter` sidecar. * * KERIpy correspondence: * - mirrors the high-level responsibilities of `keri.app.notifying.Notifier` * - persistent notice bytes and signatures live in `db/noting.ts` * * Maintainer rule: * - notifications are signed local controller records, not protocol authority * - delegation approval must use delegation escrows; `/notification` signals * are only transient UI wakeups. */ import { type Operation } from "effection"; import { type Noter, type NoterOptions, Notice, type NoticeAttrs } from "../db/noting.js"; import type { Habery } from "./habbing.js"; import { Signaler } from "./signaling.js"; export declare function notice(attrs: T, options?: { dt?: string | Date; read?: boolean; }): Notice; /** Derive sidecar-open options from the owning `Habery` path/layout settings. */ export declare function noterOptionsForHabery(hby: Habery, options?: Partial): NoterOptions; /** Open the notification sidecar that belongs to one `Habery`. */ export declare function openNoterForHabery(hby: Habery, options?: Partial): Operation; /** * Signed durable controller notifications with transient `/notification` pings. * * The detached signature is verified on every read/mutation path so operators * can trust CLI output even though notification payloads are intentionally * application-specific maps. */ export declare class Notifier { readonly hby: Habery; readonly noter: Noter; readonly signaler: Signaler; constructor(hby: Habery, { noter, signaler, }: { noter: Noter; signaler?: Signaler; }); /** Add one unread signed notice and emit a transient add signal. */ add(attrs: T): boolean; /** List verified notices in durable datetime order. */ list(start?: number, limit?: number): Notice[]; /** Count durable notices without verifying each payload. */ count(): number; /** Mark one notice read and re-sign its updated pad. */ markRead(rid: string): boolean; /** Remove one verified notice and emit a transient remove signal. */ remove(rid: string): boolean; private emitSignal; private requireNoticePair; private requireVerifiedNotice; private requireSignator; } //# sourceMappingURL=notifying.d.ts.map