/**
 * Push Notification Service - APNS Integration
 *
 * Sends push notifications to iOS devices via Apple Push Notification Service.
 * Uses HTTP/2 directly (Node.js built-in) to avoid external dependencies.
 *
 * If APNS credentials are not configured, falls back to a stub that logs
 * notifications to console instead of sending them.
 *
 * Environment variables:
 * - APNS_KEY_ID: Key ID from Apple Developer account
 * - APNS_TEAM_ID: Team ID from Apple Developer account
 * - APNS_KEY_PATH: Path to .p8 private key file
 * - APNS_BUNDLE_ID: App bundle identifier (e.g., com.craigvg.lichunWebsocket)
 * - APNS_PRODUCTION: Set to 'true' for production APNS gateway
 */
export type NotificationCategory = 'life_event' | 'relationship' | 'milestone' | 'holiday' | 'reminder';
/**
 * Deep link types for notification routing on the iOS side.
 * The iOS app uses these to navigate to the relevant screen on tap.
 */
export type DeepLinkType = 'event' | 'chat' | 'milestone';
export interface DeepLinkPayload {
    type: DeepLinkType;
    id: string;
}
export interface PushPayload {
    title: string;
    body: string;
    category?: NotificationCategory;
    badge?: number;
    sound?: string;
    /** Arbitrary extra data included in the APNS payload (outside `aps`) */
    data?: Record<string, unknown>;
    /** Structured deep link for iOS routing on notification tap */
    deepLink?: DeepLinkPayload;
}
export interface SendResult {
    success: boolean;
    error?: string;
    statusCode?: number;
}
/**
 * Check if APNS is configured and available.
 */
export declare function isApnsAvailable(): boolean;
/**
 * Send a push notification to a specific device token.
 *
 * If APNS is not configured, logs the notification to console (stub mode).
 */
export declare function sendPushNotification(deviceToken: string, payload: PushPayload): Promise<SendResult>;
//# sourceMappingURL=pushNotificationService.d.ts.map