import type { PushResult } from '@stacksjs/types'; /** * Configure the Expo driver. Optional: without it the token comes from * `config/services.ts` (`EXPO_ACCESS_TOKEN`), and anything set here wins. */ export declare function configure(options: ExpoConfig): void; /** Forget what `configure()` set. */ export declare function resetConfiguration(): void; /** * The access token a request carries, if any: `configure()`, then the app's * `config/services.ts`. * * `services.expo.accessToken` was declared, typed and read by nothing, so a * project with enhanced push security had every push rejected however it was * configured (stacksjs/stacks#2857). Read per call, after the app's config * has loaded. */ export declare function resolveAccessToken(): Promise; /** * Validates an Expo push token */ export declare function isExpoPushToken(token: string): boolean; /** * Send a push notification via Expo Push Service */ export declare function send(message: ExpoPushMessage): Promise; /** * Get push notification receipts from Expo */ export declare function getReceipts(ticketIds: string[]): Promise>; /** * Send multiple push notifications in chunks (Expo recommends max 100 per request) */ export declare function sendBatch(messages: ExpoPushMessage[], chunkSize?: number): Promise; declare const __dtsx_default_export__: { send: typeof send; sendBatch: typeof sendBatch; getReceipts: typeof getReceipts; isExpoPushToken: typeof isExpoPushToken; configure: typeof configure }; export declare interface ExpoConfig { accessToken?: string } export declare interface ExpoPushMessage { to: string | string[] title?: string body: string data?: Record sound?: 'default' | null badge?: number channelId?: string priority?: 'default' | 'normal' | 'high' ttl?: number } export declare interface ExpoPushTicket { id?: string status: 'ok' | 'error' message?: string details?: { error?: 'DeviceNotRegistered' | 'MessageTooBig' | 'MessageRateExceeded' | 'InvalidCredentials' } } export declare interface ExpoPushReceipt { status: 'ok' | 'error' message?: string details?: { error?: string } } export { send as Send }; export default __dtsx_default_export__;