export interface SecurityConfig {
  enableHardwareBackedStorage: boolean;
  requireSecureEnclave: boolean;
  enableCertificatePinning: boolean;
  allowDebugging: boolean;
}

export interface DPoPProof {
  jwt: string;
  publicKey: string;
  algorithm: string;
}

export interface EncryptionResult {
  encryptedData: string;
  keyReference: KeyReference;
  iv: string;
  authTag: string;
}

export interface KeyReference {
  keyId: string;
  orgId?: string;
  keyType: 'master' | 'dek' | 'dpop' | 'identity';
  createdAt: string;
}

export enum SecurityLevel {
  SOFTWARE = 'software',
  SECURE_HARDWARE = 'secure_hardware',
  SECURE_ENCLAVE = 'secure_enclave'
}

export interface AttestationResult {
  status: 'VALID' | 'INVALID' | 'UNKNOWN';
  deviceCheck?: any;
  playIntegrity?: any;
  timestamp: string;
}