## AdUtils

```dart
import 'package:utility_tools/ad_utils.dart';

final banner = AdUtils.loadAd("YOUR_AD_UNIT_ID");
```

## ToastUtils

Utility class for showing toast messages.

```dart
import 'package:sst_base/util/toast_utils.dart';

void main() {
  ToastUtils.showToast("Hello World", fontSize: 18.0);
}
```

## StringExt

```dart
import 'package:sst_base/util/string_ext.dart';

void main() {
  final text = "hello";

  final capitalized = text.capitalize(); // "Hello"
  final md5Hash = text.toMd5(); // "5d41402abc4b2a76b9719d911017c592"

  print("Capitalized: $capitalized");
  print("MD5 Hash: $md5Hash");
}
```

## ScreenUtils

```dart
import 'package:flutter/material.dart';
import 'package:sst_base/util/screen_utils.dart';

class MyPage extends StatelessWidget {
  const MyPage({super.key});

  @override
  Widget build(BuildContext context) {
    final height = ScreenUtils.screenHeight(context);
    final width = ScreenUtils.screenWidth(context);
    final isTablet = ScreenUtils.isTablet(context);

    return Scaffold(
      appBar: AppBar(title: const Text("ScreenUtils Example")),
      body: Center(
        child: Text(
          "Height: $height\nWidth: $width\nIs Tablet: $isTablet",
          textAlign: TextAlign.center,
        ),
      ),
    );
  }
}
```

## PermissionUtils

```dart
import 'package:sst_base/util/permission_utils.dart';
import 'package:flutter/material.dart';

class MyPage extends StatelessWidget {
  const MyPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            PermissionUtils.checkPermissionsForCamera(
              onGranted: () {
                print("Camera permission granted.");
              },
              onDenied: () {
                print("Camera permission denied.");
              },
            );
          },
          child: const Text("Request Camera Permission"),
        ),
      ),
    );
  }
}
```

## NumberUtils

```dart
import 'package:sst_base/util/number_utils.dart';

void main() {
  // Random double between 1.0 and 5.0
  double randDouble = NumberUtils.randomDouble(1.0, 5.0);

  // Random integer between 10 and 20
  int randInt = NumberUtils.randomInt(10, 20);

  // Apply ratio to a number
  double? adjustedValue = NumberUtils.applyRatio(100.0, 0.75);

  // Format a double with fixed decimal or integer style
  String formatted = NumberUtils.toStringAsFixedOrInteger(3.14159);

  // Format size in bytes
  String size = NumberUtils.formatSize(1048576); // "1.00 MB"

  print("Random double: $randDouble");
  print("Random int: $randInt");
  print("Adjusted value: $adjustedValue");
  print("Formatted: $formatted");
  print("Size: $size");
}
```

## NavigatorUtils

```dart
import 'package:sst_base/util/navigator_utils.dart';

void main() async {
  // Open paid version of the app
  await NavigatorUtils.showPaidVersion();

  // Share app link
  await NavigatorUtils.shareApp();

  // Open Play Store page for this app
  await NavigatorUtils.openPlayStore();

  // Send feedback email
  await NavigatorUtils.sendEmailFeedback();

  // Open a custom URL
  await NavigatorUtils.openUrl("https://example.com");
}
```

## ListExt

Extension for random selection from a list.

```dart
import 'package:sst_base/extensions/list_ext.dart';

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];

  // Get a random element
  int randomNumber = numbers.random();
  print("Random number: $randomNumber");

  List<String> names = ["Alice", "Bob", "Charlie"];
  print("Random name: ${names.random()}");
}
```

## FileUtils

```dart
import 'package:sst_base/util/file_utils.dart';

void main() async {
  // Get external storage path
  String localPath = await FileUtils.findLocalPath();

  // Share files
  bool shared = await FileUtils.shareFiles(
    ['/path/to/file1.txt', '/path/to/file2.jpg'],
    text: "Check these files",
  );

  // Copy a file
  bool copied = await FileUtils.copyFile(
    '/path/to/source.txt',
    '/path/to/destination.txt',
  );

  // Copy a file to Downloads
  await FileUtils.copyFileToDownloads(
    '/path/to/source.txt',
    'file.txt',
  );

  // Find application support directory
  String? supportDir = await FileUtils.findSupportDirectory();

  // Read a file
  String contents = await FileUtils.readFile('/path/to/file.txt');

  // Get or create a download directory
  String? downloadDir = await FileUtils.downloadDirectory("MyFolder");
}
```

## ColorUtils

```dart
import 'package:flutter/material.dart';
import 'package:sst_base/util/color_utils.dart';

void main() {
  // Convert RGB to HSV
  List<double> hsv = ColorUtils.rgbToHsv(255, 0, 0); // [0, 1, 1]

  // Convert HSV to RGB
  List<int> rgb = ColorUtils.hsvToRgb(0, 1, 1); // [255, 0, 0]

  // Convert hex string to Color
  Color color1 = ColorUtils.fromHex("#FF5733");
  Color color2 = ColorUtils.fromHex("FF5733");
  Color color3 = ColorUtils.fromHex("CCFF5733"); // with alpha
}
```

## DateTimeUtils

```dart
import 'package:sst_base/util/datetime_utils.dart';

void main() {
  // Get current date and time
  DateTime now = DateTimeUtils.now();

  // Format minutes
  String timeStr = DateTimeUtils.formatMinutes(125); // "2h 05m"

  // Print duration
  String durationStr = DateTimeUtils.printDuration(Duration(hours: 1, minutes: 5, seconds: 30)); // "01:05:30"

  // Convert epoch time to string
  String dateStr = DateTimeUtils.timeToString(1165325642, format: "yyyy-MM-dd");

  // Convert DateTime to string
  String formatted = DateTimeUtils.dateToString(DateTime.now(), format: "yyyy-MM-dd HH:mm:ss");
}
```
