package com.foxx.androidcast;

import com.foxx.androidcast.IVpnOperationCallback;
import com.foxx.androidcast.IVpnStateCallback;

/**
 * Standalone VPN control plane (process com.foxx.androidcast:vpn).
 * WireGuard userspace + TUN fallback run only in the VPN process.
 */
interface IVpnService {
    void registerStateCallback(IVpnStateCallback callback);
    void unregisterStateCallback(IVpnStateCallback callback);
    int getState();
    String getStateDetail();
    boolean isVpnPermissionGranted();
    void applyWireGuardConfig(String wgQuickConfig, IVpnOperationCallback callback);
    void tearDown(IVpnOperationCallback callback);
    /** Debug/lab only — records a synthetic crash from the VPN process (no process kill). */
    void simulateCrashForTest(int sequence, IVpnOperationCallback callback);
}
