/**
 * Time value structure for system time operations.
 *
 * Represents a specific time of day with hour, minute, and second components.
 * Used when updating system time through the KosTime model.
 *
 * @example
 * ```typescript
 * const morningTime: TimeBean = {
 *   hour: 9,    // 9 AM (24-hour format)
 *   min: 30,    // 30 minutes
 *   sec: 0      // 0 seconds
 * };
 *
 * const afternoonTime: TimeBean = {
 *   hour: 15,   // 3 PM (24-hour format)
 *   min: 45,
 *   sec: 30
 * };
 *
 * await timeModel.updateSystemTime(morningTime);
 * ```
 *
 * @kosService core.kos-time
 * @category System Integration
 * @category Time Management
 */
export interface TimeBean {
  /** Hour in 24-hour format (0-23) */
  hour: number;
  /** Minutes (0-59) */
  min: number;
  /** Seconds (0-59) */
  sec: number;
}

/**
 * Date value structure for system date operations.
 *
 * Represents a specific calendar date with month, day, and year components.
 * Used when updating system date through the KosTime model.
 *
 * @example
 * ```typescript
 * const newYear: DateBean = {
 *   month: 1,   // January
 *   day: 1,     // 1st
 *   year: 2024  // 2024
 * };
 *
 * const independence: DateBean = {
 *   month: 7,   // July
 *   day: 4,     // 4th
 *   year: 2024
 * };
 *
 * await timeModel.updateSystemDate(newYear);
 * ```
 *
 * @kosService core.kos-time
 * @category System Integration
 * @category Time Management
 */
export interface DateBean {
  /** Month (1-12, where 1 = January, 12 = December) */
  month: number;
  /** Day of the month (1-31, depending on month) */
  day: number;
  /** Full year (e.g., 2024) */
  year: number;
}

/**
 * Configuration options for KosTime model instances.
 *
 * Currently an empty interface but reserved for future time-related
 * configuration options such as default timezone, time format preferences,
 * or synchronization settings.
 *
 * @example
 * ```typescript
 * const options: KosTimeOptions = {
 *   // Future options will be added here
 * };
 *
 * const timeModel = KosTime.instance()
 *   .options(options)
 *   .build();
 * ```
 *
 * @kosService core.kos-time
 * @category Model Configuration
 * @category System Integration
 */
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface KosTimeOptions {}
