import { invoke } from "@tauri-apps/api/core"; export type Edition = "free" | "base" | "premium"; export interface LicenseInfo { edition: Edition; email: string; features: string[]; machine_limit: number; issued_at: number; expires_at: number; } export async function validateLicenseKey(key: string): Promise { return invoke("validate_license_key", { key }); } export async function storeLicense(key: string): Promise { return invoke("store_license", { key }); } export async function readLicense(): Promise { return invoke("read_license"); } export async function getEdition(): Promise { return invoke("get_edition"); } export async function getMachineId(): Promise { return invoke("get_machine_id"); } export async function checkEntitlement(feature: string): Promise { return invoke("check_entitlement", { feature }); } export interface MachineInfo { machine_id: string; machine_name: string | null; activated_at: string; last_seen_at: string; } export interface ActivationStatus { is_activated: boolean; machine_id: string; } export async function activateMachine(): Promise { return invoke("activate_machine"); } export async function deactivateMachine(machineId: string): Promise { return invoke("deactivate_machine", { machineId }); } export async function listActivatedMachines(): Promise { return invoke("list_activated_machines"); } export async function getActivationStatus(): Promise { return invoke("get_activation_status"); }