// Stub implementations for non-web platforms
import 'package:flutter/foundation.dart';

/// Initialize x-app-sdk service (no-op on non-web)
Future<void> webInitializeXAppSDK() async {
  // no-op on non-web
}

/// Get token from x-app-sdk (no-op on non-web)
Future<String?> webGetToken() async {
  return null;
}

/// Close app and return to Super App (no-op on non-web)
Future<bool> webCloseApp([Map<String, dynamic>? data]) async {
  return false;
}

/// Check if x-app-sdk is initialized (no-op on non-web)
bool webIsSDKInitialized() {
  return false;
}

/// Get cached token (no-op on non-web)
String? webGetCachedToken() {
  return null;
}

/// Get last error message (no-op on non-web)
String? webGetLastError() {
  return null;
}

/// Clear token cache (no-op on non-web)
void webClearTokenCache() {
  // no-op on non-web
}

/// Reset SDK service (no-op on non-web)
void webResetSDK() {
  // no-op on non-web
}

Future<dynamic> webConfigUIApp(Map<String, dynamic> config) async {
  return null;
}

Future<dynamic> webCallPhone(String phoneNumber) async {
  return null;
}

Future<dynamic> webCall(String phoneNumber) async {
  return null;
}

Future<dynamic> webSendSms(String phoneNumber) async {
  return null;
}

Future<dynamic> webSms(String phoneNumber) async {
  return null;
}

Future<dynamic> webVibrate() async {
  return null;
}

Future<dynamic> webCurrentLocation() async {
  return null;
}

Future<dynamic> webRequestLocationPermission() async {
  return null;
}

Future<dynamic> webOpenPickerImage(dynamic type) async {
  return null;
}

Future<dynamic> webOpenPickerFile([dynamic options]) async {
  return null;
}

Future<dynamic> webPaymentRequest(Map<String, dynamic> payload) async {
  return null;
}

Future<VoidCallback?> webListenNotificationEvent(
  ValueChanged<dynamic> onEvent,
) async {
  return null;
}

Future<VoidCallback?> webListenPaymentEvent(
  ValueChanged<dynamic> onEvent,
) async {
  return null;
}

Future<dynamic> webPermissionsRequest(dynamic type) async {
  return null;
}

Future<dynamic> webPremissionsRequest(dynamic type) async {
  return null;
}

Future<dynamic> webSaveStore(dynamic data) async {
  return null;
}

Future<dynamic> webGetStore() async {
  return null;
}

Future<dynamic> webClearStore() async {
  return null;
}

Future<dynamic> webGetInfo(dynamic key) async {
  return null;
}
