import type { PushHooks, PushOptions, PushPlugin, PushSendResult, PushTransport } from "./core/push-types.js"; import type { VerifyResult } from "./core/types.js"; /** Configuration for {@link createPushSender}. */ export interface PushSenderConfig { /** Push delivery transport. */ transport: PushTransport; /** Optional plugins run before each send. */ plugins?: PushPlugin[]; /** Optional lifecycle hooks for metrics and tracing. */ hooks?: PushHooks; } /** Push sender returned by {@link createPushSender}. */ export interface PushSender { /** Send a push notification through the configured transport. */ send(options: PushOptions): Promise; /** Test connectivity and credentials without sending. */ verify(): Promise; /** Release resources held by the transport. */ close(): Promise; } /** * Create a push sender that wraps a {@link PushTransport}. * * Pipeline: plugins → onSend → transport.send → onSuccess / onError. * `onRetry` / `onFallback` wire when the transport is a retry or fallback decorator. */ export declare function createPushSender(config: PushSenderConfig): PushSender;