export interface ApiClientOptions { apiKey?: string; timeout?: number; maxRetries?: number; } export interface PairingInitiateResponse { pairing_token: string; manual_code: string; qr_url: string; expires_at: string; } export interface PairingStatusResponse { status: "pending" | "completed" | "expired"; api_key?: string; user_id?: string; device_id?: string; device_name?: string; time_remaining?: number; } export interface PairingConfirmResponse { api_key: string; user_id: string; device_id: string; device_name: string; } export interface SendNotificationResponse { id: string; status: "delivered" | "partial" | "failed" | "queued"; delivered_to: number; failed: number; quota: { used: number; limit: number; resets_at: string; }; } export interface QuotaResponse { plan: string; notifications: { used: number; limit: number; resets_at: string; }; urgent: { used_today: number; daily_limit: number; }; devices: { registered: number; limit: number; }; } export interface NotificationHistoryResponse { notifications: Array<{ id: string; title: string; body?: string; priority: string; status: string; delivered_to: number; tags: string[]; sent_at?: string; created_at: string; }>; total: number; has_more: boolean; } export interface DeviceListResponse { devices: Array<{ id: string; name: string; platform: string; paired_at: string; last_seen_at?: string; is_active: boolean; }>; total: number; } export declare class ApiError extends Error { statusCode: number; code?: string | undefined; details?: Record | undefined; retryable: boolean; constructor(message: string, statusCode: number, code?: string | undefined, details?: Record | undefined, retryable?: boolean); } export declare class ApiClient { private apiKey?; private timeout; private maxRetries; constructor(options?: ApiClientOptions); /** * Set the API key (used after pairing completes) */ setApiKey(apiKey: string): void; /** * Make an HTTP request to the backend with retry logic */ private request; /** * Initiate a new pairing session */ initiatePairing(deviceName?: string): Promise; /** * Check pairing status */ getPairingStatus(pairingToken: string): Promise; /** * Cancel a pairing session */ cancelPairing(pairingToken: string): Promise; /** * Send a notification */ sendNotification(params: { title: string; body?: string; priority?: "low" | "normal" | "high" | "critical"; url?: string; image_url?: string; tags?: string[]; }): Promise; /** * Get notification history */ getNotificationHistory(params?: { limit?: number; offset?: number; tags?: string[]; since?: string; }): Promise; /** * Get quota information */ getQuota(): Promise; /** * List devices */ listDevices(): Promise; /** * Remove a device */ removeDevice(deviceId: string): Promise; } //# sourceMappingURL=api-client.d.ts.map