| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * @fileoverview |
| * Type aliases for the mojo API. |
| */ |
| |
| import {KeyboardInfo} from './input.mojom-webui.js'; |
| import {TouchDeviceInfo} from './input_data_provider.mojom-webui.js'; |
| import {CellularStateProperties, EthernetStateProperties, IPConfigProperties, Network, WiFiStateProperties} from './network_health_provider.mojom-webui.js'; |
| import {RoutineType} from './system_routine_controller.mojom-webui.js'; |
| |
| export interface NetworkGuidInfo { |
| networkGuids: string[]; |
| activeGuid: string; |
| } |
| |
| // Radio band related to channel frequency. |
| export enum ChannelBand { |
| UNKNOWN, |
| /** 5Ghz radio band. */ |
| FIVE_GHZ, |
| /** 2.4Ghz radio band. */ |
| TWO_DOT_FOUR_GHZ, |
| } |
| |
| // Struct for holding data related to WiFi network channel. |
| export interface ChannelProperties { |
| channel: number; |
| band: ChannelBand; |
| } |
| |
| export interface RoutineProperties { |
| routine: RoutineType; |
| blocking: boolean; |
| } |
| |
| export interface TroubleshootingInfo { |
| header: string; |
| linkText: string; |
| url: string; |
| } |
| |
| /** |
| * Type alias for ash::diagnostics::metrics::NavigationView to support message |
| * handler logic and metric recording. Enum values need to be kept in sync with |
| * "ash/webui/diagnostics_ui/diagnostics_metrics_message_handler.h". |
| */ |
| export enum NavigationView { |
| SYSTEM, |
| CONNECTIVITY, |
| INPUT, |
| MAX_VALUE, |
| } |
| |
| // Type alias for the the response from InputDataProvider.GetConnectedDevices. |
| export interface GetConnectedDevicesResponse { |
| keyboards: KeyboardInfo[]; |
| touchDevices: TouchDeviceInfo[]; |
| } |
| |
| // Union properties should be optional but TypeScript is not able to infer |
| // that from the autogenerated closure annotations. |
| export type WiFiNetwork = Omit<Network, 'typeProperties'|'ipConfig'>&{ |
| typeProperties?: {wifi?: WiFiStateProperties}, |
| ipConfig?: IPConfigProperties, |
| }; |
| |
| export type CellularNetwork = Omit<Network, 'typeProperties'|'ipConfig'>&{ |
| typeProperties?: {cellular?: CellularStateProperties}, |
| ipConfig?: IPConfigProperties, |
| }; |
| |
| export type EthernetNetwork = Omit<Network, 'typeProperties'|'ipConfig'>&{ |
| typeProperties?: {ethernet?: EthernetStateProperties}, |
| ipConfig?: IPConfigProperties, |
| }; |