import type { ConfirmRequest, ConfirmTransport } from './types.js'; export interface NtfyConfig { /** Topic name — appears as the last path segment of the ntfy URL. The * topic name IS the credential on ntfy.sh; pick something unguessable. */ topic: string; /** Base URL, default https://ntfy.sh. Override to point at a self-hosted * ntfy instance (e.g. https://ntfy.example.com). No trailing slash. */ server?: string; } /** Minimal subset of the fetch API surface we use. Lets tests inject a stub * without dragging in undici/MSW. */ export type FetchLike = (url: string, init: { method: 'POST'; headers: Record; body?: string; }) => Promise<{ ok: boolean; status: number; statusText: string; }>; /** * ntfy.sh transport. Publish-only — the user's phone subscribes through the * ntfy app, taps an action button, and the click round-trips to sigil's * local ack server. We never read from ntfy. * * Headers we use (all per ntfy docs): * Title: portal handle * Priority: high (default 4) — bypasses Android Doze + iOS quiet hours * Click: approveUrl — tapping the body of the notification approves * Actions: http,Approve,; http,Deny, */ export declare class NtfyTransport implements ConfirmTransport { #private; readonly name = "ntfy"; constructor(config: NtfyConfig, fetchImpl?: FetchLike); send(req: ConfirmRequest): Promise; } //# sourceMappingURL=ntfy.d.ts.map