// Auto-generated by DjangoCFG - see CLAUDE.md
/**
 * Serializer for starting 2FA setup.
 * 
 * Request model (no read-only fields).
 */
export interface SetupRequest {
  /** Device name for identification (e.g., 'My iPhone') */
  device_name?: string;
}

/**
 * Response serializer for setup initiation.
 * 
 * Response model (includes read-only fields).
 */
export interface SetupResponse {
  /** Device ID to use for confirmation */
  device_id: string;
  /** Base32-encoded TOTP secret (for manual entry) */
  secret: string;
  /** otpauth:// URI for QR code generation */
  provisioning_uri: string;
  /** Base64-encoded QR code image (data URI) */
  qr_code_base64: string;
  /** Seconds until setup expires (typically 600 = 10 minutes) */
  expires_in: number;
}

/**
 * Serializer for confirming 2FA setup with first code.
 * 
 * Request model (no read-only fields).
 */
export interface ConfirmSetupRequest {
  /** Device ID from setup response */
  device_id: string;
  /** 6-digit TOTP code from authenticator app */
  code: string;
}

/**
 * Response serializer for setup confirmation.
 * 
 * Response model (includes read-only fields).
 */
export interface ConfirmSetupResponse {
  message: string;
  /** List of backup recovery codes (save these!) */
  backup_codes: Array<string>;
  /** Warning message about backup codes */
  backup_codes_warning: string;
}

