import { NtfyAction, NtfyAttachment, NtfyPriority } from './types.js';
/**
 * Options for publishing to ntfy topics
 */
export interface NtfyPublishOptions {
    /** Base URL for the ntfy server */
    baseUrl?: string;
    /** Authentication token */
    auth?: string;
    /** Basic auth username */
    username?: string;
    /** Basic auth password */
    password?: string;
    /** Additional headers to include in requests */
    headers?: Record<string, string>;
    /** Message title */
    title?: string;
    /** Message tags (emojis) */
    tags?: string[];
    /** Message priority (1-5) */
    priority?: NtfyPriority;
    /** URL to open when notification is clicked */
    click?: string;
    /** Message actions (buttons, etc.) */
    actions?: NtfyAction[];
    /** Message attachment */
    attachment?: NtfyAttachment;
    /** Email addresses to send the notification to */
    email?: string;
    /** Delay the message for a specific time (e.g., 30m, 1h, tomorrow) */
    delay?: string;
    /** Cache the message for a specific duration (e.g., 10m, 1h, 1d) */
    cache?: string;
    /** Firebase Cloud Messaging (FCM) topic to forward to */
    firebase?: string;
    /** Unique ID for the message */
    id?: string;
    /** Message expiration (e.g., 10m, 1h, 1d) */
    expires?: string;
    /** Whether the message should be X-Forwarded */
    markdown?: boolean;
}
/**
 * Response from publishing to ntfy
 */
export interface NtfyPublishResponse {
    /** Server-assigned message ID */
    id: string;
    /** Time the message was received */
    time: number;
    /** Message expiration timestamp (if set) */
    expires?: number;
    /** Topic the message was published to */
    topic: string;
}
/**
 * Publish a message to a ntfy topic
 *
 * @param topic - Topic to publish to
 * @param message - Message to publish
 * @param options - Publishing options
 * @returns Promise resolving to the publish response
 * @throws NtfyInvalidTopicError if the topic name is invalid
 * @throws NtfyConnectionError if the connection fails
 */
export declare function publish(topic: string, message: string, options?: NtfyPublishOptions): Promise<NtfyPublishResponse>;
