from __future__ import annotations

import flatbuffers
import numpy as np

import flatbuffers
import typing
from openmeteo_sdk.Aggregation import Aggregation
from openmeteo_sdk.Unit import Unit
from openmeteo_sdk.Variable import Variable

uoffset: typing.TypeAlias = flatbuffers.number_types.UOffsetTFlags.py_type

class VariableWithValues(object):
  @classmethod
  def GetRootAs(cls, buf: bytes, offset: int) -> VariableWithValues: ...
  @classmethod
  def GetRootAsVariableWithValues(cls, buf: bytes, offset: int) -> VariableWithValues: ...
  def Init(self, buf: bytes, pos: int) -> None: ...
  def Variable(self) -> typing.Literal[Variable.undefined, Variable.apparent_temperature, Variable.cape, Variable.cloud_cover, Variable.cloud_cover_high, Variable.cloud_cover_low, Variable.cloud_cover_mid, Variable.daylight_duration, Variable.dew_point, Variable.diffuse_radiation, Variable.diffuse_radiation_instant, Variable.direct_normal_irradiance, Variable.direct_normal_irradiance_instant, Variable.direct_radiation, Variable.direct_radiation_instant, Variable.et0_fao_evapotranspiration, Variable.evapotranspiration, Variable.freezing_level_height, Variable.growing_degree_days, Variable.is_day, Variable.latent_heat_flux, Variable.leaf_wetness_probability, Variable.lifted_index, Variable.lightning_potential, Variable.precipitation, Variable.precipitation_hours, Variable.precipitation_probability, Variable.pressure_msl, Variable.rain, Variable.relative_humidity, Variable.runoff, Variable.sensible_heat_flux, Variable.shortwave_radiation, Variable.shortwave_radiation_instant, Variable.showers, Variable.snow_depth, Variable.snow_height, Variable.snowfall, Variable.snowfall_height, Variable.snowfall_water_equivalent, Variable.sunrise, Variable.sunset, Variable.soil_moisture, Variable.soil_moisture_index, Variable.soil_temperature, Variable.surface_pressure, Variable.surface_temperature, Variable.temperature, Variable.terrestrial_radiation, Variable.terrestrial_radiation_instant, Variable.total_column_integrated_water_vapour, Variable.updraft, Variable.uv_index, Variable.uv_index_clear_sky, Variable.vapour_pressure_deficit, Variable.visibility, Variable.weather_code, Variable.wind_direction, Variable.wind_gusts, Variable.wind_speed, Variable.vertical_velocity, Variable.geopotential_height, Variable.wet_bulb_temperature, Variable.river_discharge, Variable.wave_height, Variable.wave_period, Variable.wave_direction, Variable.wind_wave_height, Variable.wind_wave_period, Variable.wind_wave_peak_period, Variable.wind_wave_direction, Variable.swell_wave_height, Variable.swell_wave_period, Variable.swell_wave_peak_period, Variable.swell_wave_direction, Variable.pm10, Variable.pm2p5, Variable.dust, Variable.aerosol_optical_depth, Variable.carbon_monoxide, Variable.nitrogen_dioxide, Variable.ammonia, Variable.ozone, Variable.sulphur_dioxide, Variable.alder_pollen, Variable.birch_pollen, Variable.grass_pollen, Variable.mugwort_pollen, Variable.olive_pollen, Variable.ragweed_pollen, Variable.european_aqi, Variable.european_aqi_pm2p5, Variable.european_aqi_pm10, Variable.european_aqi_nitrogen_dioxide, Variable.european_aqi_ozone, Variable.european_aqi_sulphur_dioxide, Variable.us_aqi, Variable.us_aqi_pm2p5, Variable.us_aqi_pm10, Variable.us_aqi_nitrogen_dioxide, Variable.us_aqi_ozone, Variable.us_aqi_sulphur_dioxide, Variable.us_aqi_carbon_monoxide, Variable.sunshine_duration, Variable.convective_inhibition, Variable.shortwave_radiation_clear_sky, Variable.global_tilted_irradiance, Variable.global_tilted_irradiance_instant, Variable.ocean_current_velocity, Variable.ocean_current_direction, Variable.cloud_base, Variable.cloud_top, Variable.mass_density, Variable.boundary_layer_height, Variable.formaldehyde, Variable.glyoxal, Variable.non_methane_volatile_organic_compounds, Variable.pm10_wildfires, Variable.peroxyacyl_nitrates, Variable.secondary_inorganic_aerosol, Variable.residential_elementary_carbon, Variable.total_elementary_carbon, Variable.pm2_5_total_organic_matter, Variable.sea_salt_aerosol, Variable.nitrogen_monoxide, Variable.thunderstorm_probability, Variable.rain_probability, Variable.freezing_rain_probability, Variable.ice_pellets_probability, Variable.snowfall_probability, Variable.carbon_dioxide, Variable.methane, Variable.sea_level_height_msl, Variable.sea_surface_temperature, Variable.invert_barometer_height, Variable.hail, Variable.albedo, Variable.precipitation_type, Variable.convective_cloud_base, Variable.convective_cloud_top, Variable.snow_depth_water_equivalent, Variable.secondary_swell_wave_height, Variable.secondary_swell_wave_period, Variable.secondary_swell_wave_peak_period, Variable.secondary_swell_wave_direction, Variable.tertiary_swell_wave_height, Variable.tertiary_swell_wave_period, Variable.tertiary_swell_wave_peak_period, Variable.tertiary_swell_wave_direction]: ...
  def Unit(self) -> typing.Literal[Unit.undefined, Unit.celsius, Unit.centimetre, Unit.cubic_metre_per_cubic_metre, Unit.cubic_metre_per_second, Unit.degree_direction, Unit.dimensionless_integer, Unit.dimensionless, Unit.european_air_quality_index, Unit.fahrenheit, Unit.feet, Unit.fraction, Unit.gdd_celsius, Unit.geopotential_metre, Unit.grains_per_cubic_metre, Unit.gram_per_kilogram, Unit.hectopascal, Unit.hours, Unit.inch, Unit.iso8601, Unit.joule_per_kilogram, Unit.kelvin, Unit.kilopascal, Unit.kilogram_per_square_metre, Unit.kilometres_per_hour, Unit.knots, Unit.megajoule_per_square_metre, Unit.metre_per_second_not_unit_converted, Unit.metre_per_second, Unit.metre, Unit.micrograms_per_cubic_metre, Unit.miles_per_hour, Unit.millimetre, Unit.pascal, Unit.per_second, Unit.percentage, Unit.seconds, Unit.unix_time, Unit.us_air_quality_index, Unit.watt_per_square_metre, Unit.wmo_code, Unit.parts_per_million]: ...
  def Value(self) -> float: ...
  def Values(self, i: int) -> typing.List[float]: ...
  def ValuesAsNumpy(self) -> np.ndarray: ...
  def ValuesLength(self) -> int: ...
  def ValuesIsNone(self) -> bool: ...
  def ValuesInt64(self, i: int) -> typing.List[int]: ...
  def ValuesInt64AsNumpy(self) -> np.ndarray: ...
  def ValuesInt64Length(self) -> int: ...
  def ValuesInt64IsNone(self) -> bool: ...
  def Altitude(self) -> int: ...
  def Aggregation(self) -> typing.Literal[Aggregation.none, Aggregation.minimum, Aggregation.maximum, Aggregation.mean, Aggregation.p10, Aggregation.p25, Aggregation.median, Aggregation.p75, Aggregation.p90, Aggregation.dominant, Aggregation.sum, Aggregation.spread]: ...
  def PressureLevel(self) -> int: ...
  def Depth(self) -> int: ...
  def DepthTo(self) -> int: ...
  def EnsembleMember(self) -> int: ...
  def PreviousDay(self) -> int: ...
def VariableWithValuesStart(builder: flatbuffers.Builder) -> None: ...
def Start(builder: flatbuffers.Builder) -> None: ...
def VariableWithValuesAddVariable(builder: flatbuffers.Builder, variable: typing.Literal[Variable.undefined, Variable.apparent_temperature, Variable.cape, Variable.cloud_cover, Variable.cloud_cover_high, Variable.cloud_cover_low, Variable.cloud_cover_mid, Variable.daylight_duration, Variable.dew_point, Variable.diffuse_radiation, Variable.diffuse_radiation_instant, Variable.direct_normal_irradiance, Variable.direct_normal_irradiance_instant, Variable.direct_radiation, Variable.direct_radiation_instant, Variable.et0_fao_evapotranspiration, Variable.evapotranspiration, Variable.freezing_level_height, Variable.growing_degree_days, Variable.is_day, Variable.latent_heat_flux, Variable.leaf_wetness_probability, Variable.lifted_index, Variable.lightning_potential, Variable.precipitation, Variable.precipitation_hours, Variable.precipitation_probability, Variable.pressure_msl, Variable.rain, Variable.relative_humidity, Variable.runoff, Variable.sensible_heat_flux, Variable.shortwave_radiation, Variable.shortwave_radiation_instant, Variable.showers, Variable.snow_depth, Variable.snow_height, Variable.snowfall, Variable.snowfall_height, Variable.snowfall_water_equivalent, Variable.sunrise, Variable.sunset, Variable.soil_moisture, Variable.soil_moisture_index, Variable.soil_temperature, Variable.surface_pressure, Variable.surface_temperature, Variable.temperature, Variable.terrestrial_radiation, Variable.terrestrial_radiation_instant, Variable.total_column_integrated_water_vapour, Variable.updraft, Variable.uv_index, Variable.uv_index_clear_sky, Variable.vapour_pressure_deficit, Variable.visibility, Variable.weather_code, Variable.wind_direction, Variable.wind_gusts, Variable.wind_speed, Variable.vertical_velocity, Variable.geopotential_height, Variable.wet_bulb_temperature, Variable.river_discharge, Variable.wave_height, Variable.wave_period, Variable.wave_direction, Variable.wind_wave_height, Variable.wind_wave_period, Variable.wind_wave_peak_period, Variable.wind_wave_direction, Variable.swell_wave_height, Variable.swell_wave_period, Variable.swell_wave_peak_period, Variable.swell_wave_direction, Variable.pm10, Variable.pm2p5, Variable.dust, Variable.aerosol_optical_depth, Variable.carbon_monoxide, Variable.nitrogen_dioxide, Variable.ammonia, Variable.ozone, Variable.sulphur_dioxide, Variable.alder_pollen, Variable.birch_pollen, Variable.grass_pollen, Variable.mugwort_pollen, Variable.olive_pollen, Variable.ragweed_pollen, Variable.european_aqi, Variable.european_aqi_pm2p5, Variable.european_aqi_pm10, Variable.european_aqi_nitrogen_dioxide, Variable.european_aqi_ozone, Variable.european_aqi_sulphur_dioxide, Variable.us_aqi, Variable.us_aqi_pm2p5, Variable.us_aqi_pm10, Variable.us_aqi_nitrogen_dioxide, Variable.us_aqi_ozone, Variable.us_aqi_sulphur_dioxide, Variable.us_aqi_carbon_monoxide, Variable.sunshine_duration, Variable.convective_inhibition, Variable.shortwave_radiation_clear_sky, Variable.global_tilted_irradiance, Variable.global_tilted_irradiance_instant, Variable.ocean_current_velocity, Variable.ocean_current_direction, Variable.cloud_base, Variable.cloud_top, Variable.mass_density, Variable.boundary_layer_height, Variable.formaldehyde, Variable.glyoxal, Variable.non_methane_volatile_organic_compounds, Variable.pm10_wildfires, Variable.peroxyacyl_nitrates, Variable.secondary_inorganic_aerosol, Variable.residential_elementary_carbon, Variable.total_elementary_carbon, Variable.pm2_5_total_organic_matter, Variable.sea_salt_aerosol, Variable.nitrogen_monoxide, Variable.thunderstorm_probability, Variable.rain_probability, Variable.freezing_rain_probability, Variable.ice_pellets_probability, Variable.snowfall_probability, Variable.carbon_dioxide, Variable.methane, Variable.sea_level_height_msl, Variable.sea_surface_temperature, Variable.invert_barometer_height, Variable.hail, Variable.albedo, Variable.precipitation_type, Variable.convective_cloud_base, Variable.convective_cloud_top, Variable.snow_depth_water_equivalent, Variable.secondary_swell_wave_height, Variable.secondary_swell_wave_period, Variable.secondary_swell_wave_peak_period, Variable.secondary_swell_wave_direction, Variable.tertiary_swell_wave_height, Variable.tertiary_swell_wave_period, Variable.tertiary_swell_wave_peak_period, Variable.tertiary_swell_wave_direction]) -> None: ...
def VariableWithValuesAddUnit(builder: flatbuffers.Builder, unit: typing.Literal[Unit.undefined, Unit.celsius, Unit.centimetre, Unit.cubic_metre_per_cubic_metre, Unit.cubic_metre_per_second, Unit.degree_direction, Unit.dimensionless_integer, Unit.dimensionless, Unit.european_air_quality_index, Unit.fahrenheit, Unit.feet, Unit.fraction, Unit.gdd_celsius, Unit.geopotential_metre, Unit.grains_per_cubic_metre, Unit.gram_per_kilogram, Unit.hectopascal, Unit.hours, Unit.inch, Unit.iso8601, Unit.joule_per_kilogram, Unit.kelvin, Unit.kilopascal, Unit.kilogram_per_square_metre, Unit.kilometres_per_hour, Unit.knots, Unit.megajoule_per_square_metre, Unit.metre_per_second_not_unit_converted, Unit.metre_per_second, Unit.metre, Unit.micrograms_per_cubic_metre, Unit.miles_per_hour, Unit.millimetre, Unit.pascal, Unit.per_second, Unit.percentage, Unit.seconds, Unit.unix_time, Unit.us_air_quality_index, Unit.watt_per_square_metre, Unit.wmo_code, Unit.parts_per_million]) -> None: ...
def VariableWithValuesAddValue(builder: flatbuffers.Builder, value: float) -> None: ...
def VariableWithValuesAddValues(builder: flatbuffers.Builder, values: uoffset) -> None: ...
def VariableWithValuesStartValuesVector(builder: flatbuffers.Builder, num_elems: int) -> uoffset: ...
def StartValuesVector(builder: flatbuffers.Builder, num_elems: int) -> uoffset: ...
def VariableWithValuesAddValuesInt64(builder: flatbuffers.Builder, valuesInt64: uoffset) -> None: ...
def VariableWithValuesStartValuesInt64Vector(builder: flatbuffers.Builder, num_elems: int) -> uoffset: ...
def StartValuesInt64Vector(builder: flatbuffers.Builder, num_elems: int) -> uoffset: ...
def VariableWithValuesAddAltitude(builder: flatbuffers.Builder, altitude: int) -> None: ...
def VariableWithValuesAddAggregation(builder: flatbuffers.Builder, aggregation: typing.Literal[Aggregation.none, Aggregation.minimum, Aggregation.maximum, Aggregation.mean, Aggregation.p10, Aggregation.p25, Aggregation.median, Aggregation.p75, Aggregation.p90, Aggregation.dominant, Aggregation.sum, Aggregation.spread]) -> None: ...
def VariableWithValuesAddPressureLevel(builder: flatbuffers.Builder, pressureLevel: int) -> None: ...
def VariableWithValuesAddDepth(builder: flatbuffers.Builder, depth: int) -> None: ...
def VariableWithValuesAddDepthTo(builder: flatbuffers.Builder, depthTo: int) -> None: ...
def VariableWithValuesAddEnsembleMember(builder: flatbuffers.Builder, ensembleMember: int) -> None: ...
def VariableWithValuesAddPreviousDay(builder: flatbuffers.Builder, previousDay: int) -> None: ...
def VariableWithValuesEnd(builder: flatbuffers.Builder) -> uoffset: ...
def End(builder: flatbuffers.Builder) -> uoffset: ...

