import { OTHERS_TIMEZONES, AFRICA_TIMEZONES, AMERICA_TIMEZONES, ASIA_TIMEZONES, EUROPE_TIMEZONES, OCEANIA_TIMEZONES, ANTARCTICA_TIMEZONES, ATLANTIC_TIMEZONES } from './identifiers.js';

/**
 * Africa Timezone.
 */
type AfricaTimezone = ValueOf<typeof AFRICA_TIMEZONES>;
/**
 * America Timezone.
 */
type AmericaTimezone = ValueOf<typeof AMERICA_TIMEZONES>;
/**
 * Asia Timezone.
 */
type AsiaTimezone = ValueOf<typeof ASIA_TIMEZONES>;
/**
 * Europe Timezone.
 */
type EuropeTimezone = ValueOf<typeof EUROPE_TIMEZONES>;
/**
 * Oceania Timezone.
 */
type OceaniaTimezone = ValueOf<typeof OCEANIA_TIMEZONES>;
/**
 * Antarctica Timezone.
 */
type AntarcticaTimezone = ValueOf<typeof ANTARCTICA_TIMEZONES>;
/**
 * Atlantic Timezone.
 */
type AtlanticTimezone = ValueOf<typeof ATLANTIC_TIMEZONES>;
/**
 * Other Timezone.
 */
type OthersTimezone = ValueOf<typeof OTHERS_TIMEZONES>;
/**
 * Timezone Identifier.
 */
type Timezone = (OthersTimezone | AfricaTimezone | AmericaTimezone | AsiaTimezone | EuropeTimezone | OceaniaTimezone | AntarcticaTimezone | AtlanticTimezone);

export type { AfricaTimezone, AmericaTimezone, AntarcticaTimezone, AsiaTimezone, AtlanticTimezone, EuropeTimezone, OceaniaTimezone, OthersTimezone, Timezone };
