// Auto-generated by DjangoCFG - see CLAUDE.md
import * as Enums from "../enums";

/**
 * 
 * Response model (includes read-only fields).
 */
export interface PaginatedDeviceListResponseList {
  /** Total number of items across all pages */
  count: number;
  /** Current page number (1-based) */
  page: number;
  /** Total number of pages */
  pages: number;
  /** Number of items per page */
  page_size: number;
  /** Whether there is a next page */
  has_next: boolean;
  /** Whether there is a previous page */
  has_previous: boolean;
  /** Next page number (null if no next page) */
  next_page?: number | null;
  /** Previous page number (null if no previous page) */
  previous_page?: number | null;
  /** Array of items for current page */
  results: Array<DeviceListResponse>;
}

/**
 * Serializer for completely disabling 2FA.
 * 
 * Request model (no read-only fields).
 */
export interface DisableRequest {
  /** TOTP code for verification */
  code: string;
}

/**
 * Response serializer for device list endpoint.
 * 
 * Response model (includes read-only fields).
 */
export interface DeviceListResponse {
  devices: Array<DeviceList>;
  has_2fa_enabled: boolean;
}

/**
 * Serializer for listing TOTP devices.
 * 
 * Response model (includes read-only fields).
 */
export interface DeviceList {
  id: string;
  /** Device name for identification */
  name: string;
  /** Primary device used for verification */
  is_primary: boolean;
  /** * `pending` - Pending Confirmation
  * `active` - Active
  * `disabled` - Disabled */
  status: Enums.DeviceListStatus;
  created_at: string;
  /** When device setup was confirmed */
  confirmed_at?: string | null;
  /** Last successful verification */
  last_used_at?: string | null;
}

