import { VehicleResponse } from "./vehicle.js";
export type VehicleDataResponse = VehicleResponse & {
    charge_state: ChargeState;
    climate_state: ClimateState;
    drive_state: DriveState;
    gui_settings: GUISettings;
    vehicle_config: VehicleConfig;
    vehicle_state: VehicleState;
};
export type ChargeState = {
    battery_heater_on: boolean;
    battery_level: number;
    battery_range: number;
    charge_amps: number;
    charge_current_request: number;
    charge_current_request_max: number;
    charge_enable_request: boolean;
    charge_energy_added: number;
    charge_limit_soc: number;
    charge_limit_soc_max: number;
    charge_limit_soc_min: number;
    charge_limit_soc_std: number;
    charge_miles_added_ideal: number;
    charge_miles_added_rated: number;
    charge_port_cold_weather_mode: boolean;
    charge_port_color: string;
    charge_port_door_open: boolean;
    charge_port_latch: string;
    charge_rate: number;
    charger_actual_current: number;
    charger_phases: null;
    charger_pilot_current: number;
    charger_power: number;
    charger_voltage: number;
    charging_state: string;
    conn_charge_cable: string;
    est_battery_range: number;
    fast_charger_brand: string;
    fast_charger_present: boolean;
    fast_charger_type: string;
    ideal_battery_range: number;
    max_range_charge_counter: number;
    minutes_to_full_charge: number;
    not_enough_power_to_heat: null;
    off_peak_charging_enabled: boolean;
    off_peak_charging_times: string;
    off_peak_hours_end_time: number;
    preconditioning_enabled: boolean;
    preconditioning_times: string;
    scheduled_charging_mode: string;
    scheduled_charging_pending: boolean;
    scheduled_charging_start_time: null;
    scheduled_charging_start_time_app: number;
    scheduled_departure_time: number;
    scheduled_departure_time_minutes: number;
    supercharger_session_trip_planner: boolean;
    time_to_full_charge: number;
    timestamp: number;
    trip_charging: boolean;
    usable_battery_level: number;
    user_charge_enable_request: null;
};
export type ClimateState = {
    allow_cabin_overheat_protection: boolean;
    auto_seat_climate_left: boolean;
    auto_seat_climate_right: boolean;
    auto_steering_wheel_heat: boolean;
    battery_heater: boolean;
    battery_heater_no_power: null;
    cabin_overheat_protection: string;
    cabin_overheat_protection_actively_cooling: boolean;
    climate_keeper_mode: string;
    cop_activation_temperature: string;
    defrost_mode: number;
    driver_temp_setting: number;
    fan_status: number;
    hvac_auto_request: string;
    inside_temp: number;
    is_auto_conditioning_on: boolean;
    is_climate_on: boolean;
    is_front_defroster_on: boolean;
    is_preconditioning: boolean;
    is_rear_defroster_on: boolean;
    left_temp_direction: number;
    max_avail_temp: number;
    min_avail_temp: number;
    outside_temp: number;
    passenger_temp_setting: number;
    remote_heater_control_enabled: boolean;
    right_temp_direction: number;
    seat_heater_left: number;
    seat_heater_rear_center: number;
    seat_heater_rear_left: number;
    seat_heater_rear_right: number;
    seat_heater_right: number;
    side_mirror_heaters: boolean;
    steering_wheel_heat_level: number;
    steering_wheel_heater: boolean;
    supports_fan_only_cabin_overheat_protection: boolean;
    timestamp: number;
    wiper_blade_heater: boolean;
};
export type DriveState = {
    active_route_latitude: number;
    active_route_longitude: number;
    active_route_miles_to_arrival: number;
    active_route_minutes_to_arrival: number;
    active_route_traffic_minutes_delay: number;
    gps_as_of: number;
    heading: number;
    latitude: number;
    longitude: number;
    native_latitude: number;
    native_location_supported: number;
    native_longitude: number;
    native_type: string;
    power: number;
    shift_state: null;
    speed: null;
    timestamp: number;
};
export type GranularAccess = {
    hide_private: boolean;
};
export type GUISettings = {
    gui_24_hour_time: boolean;
    gui_charge_rate_units: string;
    gui_distance_units: string;
    gui_range_display: string;
    gui_temperature_units: string;
    gui_tirepressure_units: string;
    show_range_units: boolean;
    timestamp: number;
};
export type VehicleConfig = {
    aux_park_lamps: string;
    badge_version: number;
    can_accept_navigation_requests: boolean;
    can_actuate_trunks: boolean;
    car_special_type: string;
    car_type: string;
    charge_port_type: string;
    cop_user_set_temp_supported: boolean;
    dashcam_clip_save_supported: boolean;
    default_charge_to_max: boolean;
    driver_assist: string;
    ece_restrictions: boolean;
    efficiency_package: string;
    eu_vehicle: boolean;
    exterior_color: string;
    exterior_trim: string;
    exterior_trim_override: string;
    has_air_suspension: boolean;
    has_ludicrous_mode: boolean;
    has_seat_cooling: boolean;
    headlamp_type: string;
    interior_trim_type: string;
    key_version: number;
    motorized_charge_port: boolean;
    paint_color_override: string;
    performance_package: string;
    plg: boolean;
    pws: boolean;
    rear_drive_unit: string;
    rear_seat_heaters: number;
    rear_seat_type: number;
    rhd: boolean;
    roof_color: string;
    seat_type: null;
    spoiler_type: string;
    sun_roof_installed: null;
    supports_qr_pairing: boolean;
    third_row_seats: string;
    timestamp: number;
    trim_badging: string;
    use_range_badging: boolean;
    utc_offset: number;
    webcam_selfie_supported: boolean;
    webcam_supported: boolean;
    wheel_type: string;
};
export type VehicleState = {
    api_version: number;
    autopark_state_v2: string;
    calendar_supported: boolean;
    car_version: string;
    center_display_state: number;
    dashcam_clip_save_available: boolean;
    dashcam_state: string;
    df: number;
    dr: number;
    fd_window: number;
    feature_bitmask: string;
    fp_window: number;
    ft: number;
    is_user_present: boolean;
    locked: boolean;
    media_info: MediaInfo;
    media_state: MediaState;
    notifications_supported: boolean;
    odometer: number;
    parsed_calendar_supported: boolean;
    pf: number;
    pr: number;
    rd_window: number;
    remote_start: boolean;
    remote_start_enabled: boolean;
    remote_start_supported: boolean;
    rp_window: number;
    rt: number;
    santa_mode: number;
    sentry_mode: boolean;
    sentry_mode_available: boolean;
    service_mode: boolean;
    service_mode_plus: boolean;
    software_update: SoftwareUpdate;
    speed_limit_mode: SpeedLimitMode;
    timestamp: number;
    tpms_hard_warning_fl: boolean;
    tpms_hard_warning_fr: boolean;
    tpms_hard_warning_rl: boolean;
    tpms_hard_warning_rr: boolean;
    tpms_last_seen_pressure_time_fl: number;
    tpms_last_seen_pressure_time_fr: number;
    tpms_last_seen_pressure_time_rl: number;
    tpms_last_seen_pressure_time_rr: number;
    tpms_pressure_fl: number;
    tpms_pressure_fr: number;
    tpms_pressure_rl: number;
    tpms_pressure_rr: number;
    tpms_rcp_front_value: number;
    tpms_rcp_rear_value: number;
    tpms_soft_warning_fl: boolean;
    tpms_soft_warning_fr: boolean;
    tpms_soft_warning_rl: boolean;
    tpms_soft_warning_rr: boolean;
    valet_mode: boolean;
    valet_pin_needed: boolean;
    vehicle_name: string;
    vehicle_self_test_progress: number;
    vehicle_self_test_requested: boolean;
    webcam_available: boolean;
};
export type MediaInfo = {
    a2dp_source_name: string;
    audio_volume: number;
    audio_volume_increment: number;
    audio_volume_max: number;
    media_playback_status: string;
    now_playing_album: string;
    now_playing_artist: string;
    now_playing_duration: number;
    now_playing_elapsed: number;
    now_playing_source: string;
    now_playing_station: string;
    now_playing_title: string;
};
export type MediaState = {
    remote_control_enabled: boolean;
};
export type SoftwareUpdate = {
    download_perc: number;
    expected_duration_sec: number;
    install_perc: number;
    status: string;
    version: string;
};
export type SpeedLimitMode = {
    active: boolean;
    current_limit_mph: number;
    max_limit_mph: number;
    min_limit_mph: number;
    pin_code_set: boolean;
};
