@tak-ps/cloudtak Plugin API
    Preparing search index...

    Class PluginAPI

    The Main Plugin API for managing CloudTAK UI functions

    Index
    • Parameters

      • app: App

        The Vue App instance

      • router: RouterClassic

        The Vue Router instance

      • pinia: Pinia

        The Pinia Store instance

      Returns PluginAPI

    app: App

    The Vue App instance

    pinia: Pinia

    The Pinia Store instance

    router: RouterClassic

    The Vue Router instance

    • get bottomBar(): {
          add: (item: BottomBarItemConfig) => void;
          remove: (key: string) => void;
      }

      Manage the floating plugin pane at the bottom centre of the map. The pane is only rendered while at least one item is registered.

      Returns { add: (item: BottomBarItemConfig) => void; remove: (key: string) => void }

      • add: (item: BottomBarItemConfig) => void

        Add a component to the floating plugin pane

      • remove: (key: string) => void

        Remove a previously registered plugin pane component by key

    • Manage Breadcrumb Trails

      Returns {
          history: {
              clear: (uid?: string) => Promise<void>;
              list: (opts?: FeatureHistory_ListOptions) => Promise<DBFeatureHistory[]>;
              load: (uid: string, opts?: HistoryWindow) => Promise<DBFeatureHistory[]>;
              loadAll: (
                  opts?: HistoryWindow & {
                      bbox?: [number, number, number, number];
                      filtered?: boolean;
                  } & { filter?: (feature: DBFeature) => boolean },
              ) => Promise<number>;
              popup: {
                  remove: (key: string) => void;
                  set: (key: string, renderer: HistoryPopupRenderer) => void;
              };
              record: (
                  features: DBFeature[],
                  opts?: { source?: FeatureHistorySource },
              ) => Promise<number>;
              stream: (
                  opts?: FeatureHistory_ListOptions,
              ) => Observable<DBFeatureHistory[]>;
          };
          live: {
              add: (uid: string) => Promise<void>;
              list: () => Promise<string[]>;
              remove: (uid: string) => Promise<void>;
              stream: () => Observable<string[]>;
          };
      }

      • history: {
            clear: (uid?: string) => Promise<void>;
            list: (opts?: FeatureHistory_ListOptions) => Promise<DBFeatureHistory[]>;
            load: (uid: string, opts?: HistoryWindow) => Promise<DBFeatureHistory[]>;
            loadAll: (
                opts?: HistoryWindow & {
                    bbox?: [number, number, number, number];
                    filtered?: boolean;
                } & { filter?: (feature: DBFeature) => boolean },
            ) => Promise<number>;
            popup: {
                remove: (key: string) => void;
                set: (key: string, renderer: HistoryPopupRenderer) => void;
            };
            record: (
                features: DBFeature[],
                opts?: { source?: FeatureHistorySource },
            ) => Promise<number>;
            stream: (
                opts?: FeatureHistory_ListOptions,
            ) => Observable<DBFeatureHistory[]>;
        }

        Manage the local history of discrete, timestamped CoT points that breadcrumb trails are drawn from. Every point keeps the properties the CoT carried at that moment; CloudTAK renders the points and the trail through them, with hover & click surfacing each point.

        • clear: (uid?: string) => Promise<void>

          Remove recorded history. With a UID the trail is removed and its live recording disabled; without one every trail is cleared

        • list: (opts?: FeatureHistory_ListOptions) => Promise<DBFeatureHistory[]>

          List recorded history points, oldest first

        • load: (uid: string, opts?: HistoryWindow) => Promise<DBFeatureHistory[]>

          Fetch a CoT's history from the TAK Server and record it locally

        • loadAll: (
              opts?: HistoryWindow & {
                  bbox?: [number, number, number, number];
                  filtered?: boolean;
              } & { filter?: (feature: DBFeature) => boolean },
          ) => Promise<number>

          Fetch every CoT's history within a time window from the TAK Server and record it locally

        • popup: {
              remove: (key: string) => void;
              set: (key: string, renderer: HistoryPopupRenderer) => void;
          }

          Popup shown while hovering a history point on the map

          • remove: (key: string) => void

            Remove a previously registered renderer

          • set: (key: string, renderer: HistoryPopupRenderer) => void

            Register a renderer for the hover popup. Renderers run in registration order and the first to return content wins; return nothing to fall through to CloudTAK's default body

        • record: (
              features: DBFeature[],
              opts?: { source?: FeatureHistorySource },
          ) => Promise<number>

          Record CoT reports the plugin already holds (for example a live update it wants on the trail) as history points. Each report needs an id and a time/start; a report recorded twice overwrites itself

        • stream: (opts?: FeatureHistory_ListOptions) => Observable<DBFeatureHistory[]>

          Stream recorded history points, re-emitting as points are recorded or cleared

      • live: {
            add: (uid: string) => Promise<void>;
            list: () => Promise<string[]>;
            remove: (uid: string) => Promise<void>;
            stream: () => Observable<string[]>;
        }

        Manage live breadcrumb trail recording

        • add: (uid: string) => Promise<void>

          Enable live breadcrumb trail recording for a given CoT UID

        • list: () => Promise<string[]>

          Returns all CoT UIDs that currently have live breadcrumb recording enabled

        • remove: (uid: string) => Promise<void>

          Disable live breadcrumb trail recording for a given CoT UID

        • stream: () => Observable<string[]>

          Stream the CoT UIDs with live recording enabled, re-emitting whenever recording is enabled or disabled for any UID

    • get cot(): {
          history: (uid: string, opts?: HistoryWindow) => Promise<DBFeature[]>;
          historyAll: (opts?: HistoryAllOptions) => Promise<DBFeature[]>;
      }

      Manage CoT Marti Queries

      Returns {
          history: (uid: string, opts?: HistoryWindow) => Promise<DBFeature[]>;
          historyAll: (opts?: HistoryAllOptions) => Promise<DBFeature[]>;
      }

      • history: (uid: string, opts?: HistoryWindow) => Promise<DBFeature[]>

        Fetch the historic CoT points for a given UID from the TAK Server.

        Each point is returned as its own Feature retaining its temporal attributes so callers can build time-series visualizations.

      • historyAll: (opts?: HistoryAllOptions) => Promise<DBFeature[]>

        Fetch every historic CoT point visible to the user within a time window (at most 24 hours) from the TAK Server, optionally restricted to a bounding box.

        Each point is returned as its own Feature retaining its temporal attributes. Nothing is stored - see breadcrumb.history.loadAll to record and render the result.

    • get feature(): {
          list: (
              opts?: { filter?: (feature: DBFeature) => boolean },
          ) => Promise<DBFeature[]>;
          stream: (
              opts?: { filter?: (feature: DBFeature) => boolean },
          ) => Observable<DBFeature[]>;
          streamOne: (uid: string) => Observable<DBFeature | undefined>;
      }

      Manage Features

      Returns {
          list: (
              opts?: { filter?: (feature: DBFeature) => boolean },
          ) => Promise<DBFeature[]>;
          stream: (
              opts?: { filter?: (feature: DBFeature) => boolean },
          ) => Observable<DBFeature[]>;
          streamOne: (uid: string) => Observable<DBFeature | undefined>;
      }

      • list: (opts?: { filter?: (feature: DBFeature) => boolean }) => Promise<DBFeature[]>

        List features from the local database

      • stream: (opts?: { filter?: (feature: DBFeature) => boolean }) => Observable<DBFeature[]>

        Stream features from the local database. The filter runs over the entire table and re-runs on every feature write, so keep one stream per list rather than one per item.

      • streamOne: (uid: string) => Observable<DBFeature | undefined>

        Stream one feature by its CoT UID, re-emitting only when that row changes. Prefer this over stream with a filter whenever a single feature is wanted - a filter scans the whole table on every write anywhere in it.

    • get float(): {
          add: (
              opts: {
                  actions?: Component;
                  component: Component;
                  height?: number;
                  name?: string;
                  props?: Record<string, unknown>;
                  uid: string;
                  width?: number;
                  x?: number;
                  y?: number;
              },
          ) => FloatingPane;
          has: (uid: string) => boolean;
          remove: (uid: string) => void;
      }

      Manage Floating Panes on top of the Map View

      Returns {
          add: (
              opts: {
                  actions?: Component;
                  component: Component;
                  height?: number;
                  name?: string;
                  props?: Record<string, unknown>;
                  uid: string;
                  width?: number;
                  x?: number;
                  y?: number;
              },
          ) => FloatingPane;
          has: (uid: string) => boolean;
          remove: (uid: string) => void;
      }

      • add: (
            opts: {
                actions?: Component;
                component: Component;
                height?: number;
                name?: string;
                props?: Record<string, unknown>;
                uid: string;
                width?: number;
                x?: number;
                y?: number;
            },
        ) => FloatingPane

        Add a new floating pane

      • has: (uid: string) => boolean

        Check if a floating pane exists

      • remove: (uid: string) => void

        Remove a floating pane

    • Manage the Main Menu

      Returns { add: (item: MenuItemConfig) => void; remove: (key: string) => void }

      • add: (item: MenuItemConfig) => void

        Add a new item to the main menu

      • remove: (key: string) => void

        Remove an item from the main menu

    • get profile(): {
          get: <
              K extends
                  | "created"
                  | "active"
                  | "updated"
                  | "username"
                  | "disabled"
                  | "last_login"
                  | "system_admin"
                  | "agency_admin"
                  | "tak_callsign"
                  | "tak_remarks"
                  | "tak_phone"
                  | "tak_group"
                  | "tak_role"
                  | "tak_type"
                  | "tak_loc"
                  | "tak_loc_freq"
                  | "menu_order"
                  | "display_projection"
                  | "display_zoom"
                  | "display_style"
                  | "display_coordinate"
                  | "display_icon_rotation"
                  | "display_stale"
                  | "display_text"
                  | "display_distance"
                  | "display_elevation"
                  | "display_area"
                  | "display_speed"
                  | "display_radiation_dose"
                  | "display_wakelock"
                  | "notification_contact"
                  | "notification_import"
                  | "notification_alert"
                  | "notification_medical"
                  | "notification_mission"
                  | "notification_chat"
                  | "geometry_point_type"
                  | "geometry_point_color"
                  | "geometry_point_icon",
          >(
              key: K,
          ) => Promise<
              | {
                  active: boolean;
                  agency_admin: number[];
                  created: string;
                  disabled: boolean;
                  display_area: "square meter"
                  | "square feet"
                  | "acre"
                  | "hectare";
                  display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                  display_distance: "meter" | "kilometer" | "mile";
                  display_elevation: "meter" | "feet";
                  display_icon_rotation: boolean;
                  display_projection: "mercator" | "globe";
                  display_radiation_dose: "sieverts" | "rems";
                  display_speed: "m/s" | "km/h" | "mi/h";
                  display_stale:
                      | "Immediate"
                      | "10 Minutes"
                      | "30 Minutes"
                      | "1 Hour"
                      | "Never";
                  display_style: "System Default"
                  | "Light"
                  | "Dark";
                  display_text: "Small" | "Medium" | "Large";
                  display_wakelock: "Default" | "Charging" | "Always On";
                  display_zoom: "always" | "conditional" | "never";
                  geometry_point_color?: string;
                  geometry_point_icon?: string;
                  geometry_point_type?: string;
                  last_login: string | null;
                  menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                  notification_alert: boolean;
                  notification_chat: boolean;
                  notification_contact: boolean;
                  notification_import: boolean;
                  notification_medical: boolean;
                  notification_mission: boolean;
                  system_admin: boolean;
                  tak_callsign: string;
                  tak_group:
                      | "White"
                      | "Yellow"
                      | "Orange"
                      | "Magenta"
                      | "Red"
                      | "Maroon"
                      | "Purple"
                      | "Dark Blue"
                      | "Blue"
                      | "Cyan"
                      | "Teal"
                      | "Green"
                      | "Dark Green"
                      | "Brown";
                  tak_loc: { coordinates: number[]; type: "Point" }
                  | null;
                  tak_loc_freq: number;
                  tak_phone: string;
                  tak_remarks: string;
                  tak_role:
                      | "Team Member"
                      | "Team Lead"
                      | "HQ"
                      | "Sniper"
                      | "Medic"
                      | "Forward Observer"
                      | "RTO"
                      | "K9";
                  tak_type: string;
                  updated: string;
                  username: string;
              }[K]
              | undefined,
          >;
          list: () => Promise<
              Partial<
                  {
                      active: boolean;
                      agency_admin: number[];
                      created: string;
                      disabled: boolean;
                      display_area: "square meter"
                      | "square feet"
                      | "acre"
                      | "hectare";
                      display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                      display_distance: "meter" | "kilometer" | "mile";
                      display_elevation: "meter" | "feet";
                      display_icon_rotation: boolean;
                      display_projection: "mercator" | "globe";
                      display_radiation_dose: "sieverts" | "rems";
                      display_speed: "m/s" | "km/h" | "mi/h";
                      display_stale:
                          | "Immediate"
                          | "10 Minutes"
                          | "30 Minutes"
                          | "1 Hour"
                          | "Never";
                      display_style: "System Default"
                      | "Light"
                      | "Dark";
                      display_text: "Small" | "Medium" | "Large";
                      display_wakelock: "Default" | "Charging" | "Always On";
                      display_zoom: "always" | "conditional" | "never";
                      geometry_point_color?: string;
                      geometry_point_icon?: string;
                      geometry_point_type?: string;
                      last_login: string | null;
                      menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                      notification_alert: boolean;
                      notification_chat: boolean;
                      notification_contact: boolean;
                      notification_import: boolean;
                      notification_medical: boolean;
                      notification_mission: boolean;
                      system_admin: boolean;
                      tak_callsign: string;
                      tak_group:
                          | "White"
                          | "Yellow"
                          | "Orange"
                          | "Magenta"
                          | "Red"
                          | "Maroon"
                          | "Purple"
                          | "Dark Blue"
                          | "Blue"
                          | "Cyan"
                          | "Teal"
                          | "Green"
                          | "Dark Green"
                          | "Brown";
                      tak_loc: { coordinates: number[]; type: "Point" }
                      | null;
                      tak_loc_freq: number;
                      tak_phone: string;
                      tak_remarks: string;
                      tak_role:
                          | "Team Member"
                          | "Team Lead"
                          | "HQ"
                          | "Sniper"
                          | "Medic"
                          | "Forward Observer"
                          | "RTO"
                          | "K9";
                      tak_type: string;
                      updated: string;
                      username: string;
                  },
              >,
          >;
          stream: <
              K extends
                  | "created"
                  | "active"
                  | "updated"
                  | "username"
                  | "disabled"
                  | "last_login"
                  | "system_admin"
                  | "agency_admin"
                  | "tak_callsign"
                  | "tak_remarks"
                  | "tak_phone"
                  | "tak_group"
                  | "tak_role"
                  | "tak_type"
                  | "tak_loc"
                  | "tak_loc_freq"
                  | "menu_order"
                  | "display_projection"
                  | "display_zoom"
                  | "display_style"
                  | "display_coordinate"
                  | "display_icon_rotation"
                  | "display_stale"
                  | "display_text"
                  | "display_distance"
                  | "display_elevation"
                  | "display_area"
                  | "display_speed"
                  | "display_radiation_dose"
                  | "display_wakelock"
                  | "notification_contact"
                  | "notification_import"
                  | "notification_alert"
                  | "notification_medical"
                  | "notification_mission"
                  | "notification_chat"
                  | "geometry_point_type"
                  | "geometry_point_color"
                  | "geometry_point_icon",
          >(
              key: K,
          ) => Observable<
              | {
                  active: boolean;
                  agency_admin: number[];
                  created: string;
                  disabled: boolean;
                  display_area: "square meter"
                  | "square feet"
                  | "acre"
                  | "hectare";
                  display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                  display_distance: "meter" | "kilometer" | "mile";
                  display_elevation: "meter" | "feet";
                  display_icon_rotation: boolean;
                  display_projection: "mercator" | "globe";
                  display_radiation_dose: "sieverts" | "rems";
                  display_speed: "m/s" | "km/h" | "mi/h";
                  display_stale:
                      | "Immediate"
                      | "10 Minutes"
                      | "30 Minutes"
                      | "1 Hour"
                      | "Never";
                  display_style: "System Default"
                  | "Light"
                  | "Dark";
                  display_text: "Small" | "Medium" | "Large";
                  display_wakelock: "Default" | "Charging" | "Always On";
                  display_zoom: "always" | "conditional" | "never";
                  geometry_point_color?: string;
                  geometry_point_icon?: string;
                  geometry_point_type?: string;
                  last_login: string | null;
                  menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                  notification_alert: boolean;
                  notification_chat: boolean;
                  notification_contact: boolean;
                  notification_import: boolean;
                  notification_medical: boolean;
                  notification_mission: boolean;
                  system_admin: boolean;
                  tak_callsign: string;
                  tak_group:
                      | "White"
                      | "Yellow"
                      | "Orange"
                      | "Magenta"
                      | "Red"
                      | "Maroon"
                      | "Purple"
                      | "Dark Blue"
                      | "Blue"
                      | "Cyan"
                      | "Teal"
                      | "Green"
                      | "Dark Green"
                      | "Brown";
                  tak_loc: { coordinates: number[]; type: "Point" }
                  | null;
                  tak_loc_freq: number;
                  tak_phone: string;
                  tak_remarks: string;
                  tak_role:
                      | "Team Member"
                      | "Team Lead"
                      | "HQ"
                      | "Sniper"
                      | "Medic"
                      | "Forward Observer"
                      | "RTO"
                      | "K9";
                  tak_type: string;
                  updated: string;
                  username: string;
              }[K]
              | undefined,
          >;
      }

      Read the signed-in user's profile settings, such as the display units chosen under Settings. Settings are read-only to plugins.

      Returns {
          get: <
              K extends
                  | "created"
                  | "active"
                  | "updated"
                  | "username"
                  | "disabled"
                  | "last_login"
                  | "system_admin"
                  | "agency_admin"
                  | "tak_callsign"
                  | "tak_remarks"
                  | "tak_phone"
                  | "tak_group"
                  | "tak_role"
                  | "tak_type"
                  | "tak_loc"
                  | "tak_loc_freq"
                  | "menu_order"
                  | "display_projection"
                  | "display_zoom"
                  | "display_style"
                  | "display_coordinate"
                  | "display_icon_rotation"
                  | "display_stale"
                  | "display_text"
                  | "display_distance"
                  | "display_elevation"
                  | "display_area"
                  | "display_speed"
                  | "display_radiation_dose"
                  | "display_wakelock"
                  | "notification_contact"
                  | "notification_import"
                  | "notification_alert"
                  | "notification_medical"
                  | "notification_mission"
                  | "notification_chat"
                  | "geometry_point_type"
                  | "geometry_point_color"
                  | "geometry_point_icon",
          >(
              key: K,
          ) => Promise<
              | {
                  active: boolean;
                  agency_admin: number[];
                  created: string;
                  disabled: boolean;
                  display_area: "square meter"
                  | "square feet"
                  | "acre"
                  | "hectare";
                  display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                  display_distance: "meter" | "kilometer" | "mile";
                  display_elevation: "meter" | "feet";
                  display_icon_rotation: boolean;
                  display_projection: "mercator" | "globe";
                  display_radiation_dose: "sieverts" | "rems";
                  display_speed: "m/s" | "km/h" | "mi/h";
                  display_stale:
                      | "Immediate"
                      | "10 Minutes"
                      | "30 Minutes"
                      | "1 Hour"
                      | "Never";
                  display_style: "System Default"
                  | "Light"
                  | "Dark";
                  display_text: "Small" | "Medium" | "Large";
                  display_wakelock: "Default" | "Charging" | "Always On";
                  display_zoom: "always" | "conditional" | "never";
                  geometry_point_color?: string;
                  geometry_point_icon?: string;
                  geometry_point_type?: string;
                  last_login: string | null;
                  menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                  notification_alert: boolean;
                  notification_chat: boolean;
                  notification_contact: boolean;
                  notification_import: boolean;
                  notification_medical: boolean;
                  notification_mission: boolean;
                  system_admin: boolean;
                  tak_callsign: string;
                  tak_group:
                      | "White"
                      | "Yellow"
                      | "Orange"
                      | "Magenta"
                      | "Red"
                      | "Maroon"
                      | "Purple"
                      | "Dark Blue"
                      | "Blue"
                      | "Cyan"
                      | "Teal"
                      | "Green"
                      | "Dark Green"
                      | "Brown";
                  tak_loc: { coordinates: number[]; type: "Point" }
                  | null;
                  tak_loc_freq: number;
                  tak_phone: string;
                  tak_remarks: string;
                  tak_role:
                      | "Team Member"
                      | "Team Lead"
                      | "HQ"
                      | "Sniper"
                      | "Medic"
                      | "Forward Observer"
                      | "RTO"
                      | "K9";
                  tak_type: string;
                  updated: string;
                  username: string;
              }[K]
              | undefined,
          >;
          list: () => Promise<
              Partial<
                  {
                      active: boolean;
                      agency_admin: number[];
                      created: string;
                      disabled: boolean;
                      display_area: "square meter"
                      | "square feet"
                      | "acre"
                      | "hectare";
                      display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                      display_distance: "meter" | "kilometer" | "mile";
                      display_elevation: "meter" | "feet";
                      display_icon_rotation: boolean;
                      display_projection: "mercator" | "globe";
                      display_radiation_dose: "sieverts" | "rems";
                      display_speed: "m/s" | "km/h" | "mi/h";
                      display_stale:
                          | "Immediate"
                          | "10 Minutes"
                          | "30 Minutes"
                          | "1 Hour"
                          | "Never";
                      display_style: "System Default"
                      | "Light"
                      | "Dark";
                      display_text: "Small" | "Medium" | "Large";
                      display_wakelock: "Default" | "Charging" | "Always On";
                      display_zoom: "always" | "conditional" | "never";
                      geometry_point_color?: string;
                      geometry_point_icon?: string;
                      geometry_point_type?: string;
                      last_login: string | null;
                      menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                      notification_alert: boolean;
                      notification_chat: boolean;
                      notification_contact: boolean;
                      notification_import: boolean;
                      notification_medical: boolean;
                      notification_mission: boolean;
                      system_admin: boolean;
                      tak_callsign: string;
                      tak_group:
                          | "White"
                          | "Yellow"
                          | "Orange"
                          | "Magenta"
                          | "Red"
                          | "Maroon"
                          | "Purple"
                          | "Dark Blue"
                          | "Blue"
                          | "Cyan"
                          | "Teal"
                          | "Green"
                          | "Dark Green"
                          | "Brown";
                      tak_loc: { coordinates: number[]; type: "Point" }
                      | null;
                      tak_loc_freq: number;
                      tak_phone: string;
                      tak_remarks: string;
                      tak_role:
                          | "Team Member"
                          | "Team Lead"
                          | "HQ"
                          | "Sniper"
                          | "Medic"
                          | "Forward Observer"
                          | "RTO"
                          | "K9";
                      tak_type: string;
                      updated: string;
                      username: string;
                  },
              >,
          >;
          stream: <
              K extends
                  | "created"
                  | "active"
                  | "updated"
                  | "username"
                  | "disabled"
                  | "last_login"
                  | "system_admin"
                  | "agency_admin"
                  | "tak_callsign"
                  | "tak_remarks"
                  | "tak_phone"
                  | "tak_group"
                  | "tak_role"
                  | "tak_type"
                  | "tak_loc"
                  | "tak_loc_freq"
                  | "menu_order"
                  | "display_projection"
                  | "display_zoom"
                  | "display_style"
                  | "display_coordinate"
                  | "display_icon_rotation"
                  | "display_stale"
                  | "display_text"
                  | "display_distance"
                  | "display_elevation"
                  | "display_area"
                  | "display_speed"
                  | "display_radiation_dose"
                  | "display_wakelock"
                  | "notification_contact"
                  | "notification_import"
                  | "notification_alert"
                  | "notification_medical"
                  | "notification_mission"
                  | "notification_chat"
                  | "geometry_point_type"
                  | "geometry_point_color"
                  | "geometry_point_icon",
          >(
              key: K,
          ) => Observable<
              | {
                  active: boolean;
                  agency_admin: number[];
                  created: string;
                  disabled: boolean;
                  display_area: "square meter"
                  | "square feet"
                  | "acre"
                  | "hectare";
                  display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                  display_distance: "meter" | "kilometer" | "mile";
                  display_elevation: "meter" | "feet";
                  display_icon_rotation: boolean;
                  display_projection: "mercator" | "globe";
                  display_radiation_dose: "sieverts" | "rems";
                  display_speed: "m/s" | "km/h" | "mi/h";
                  display_stale:
                      | "Immediate"
                      | "10 Minutes"
                      | "30 Minutes"
                      | "1 Hour"
                      | "Never";
                  display_style: "System Default"
                  | "Light"
                  | "Dark";
                  display_text: "Small" | "Medium" | "Large";
                  display_wakelock: "Default" | "Charging" | "Always On";
                  display_zoom: "always" | "conditional" | "never";
                  geometry_point_color?: string;
                  geometry_point_icon?: string;
                  geometry_point_type?: string;
                  last_login: string | null;
                  menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                  notification_alert: boolean;
                  notification_chat: boolean;
                  notification_contact: boolean;
                  notification_import: boolean;
                  notification_medical: boolean;
                  notification_mission: boolean;
                  system_admin: boolean;
                  tak_callsign: string;
                  tak_group:
                      | "White"
                      | "Yellow"
                      | "Orange"
                      | "Magenta"
                      | "Red"
                      | "Maroon"
                      | "Purple"
                      | "Dark Blue"
                      | "Blue"
                      | "Cyan"
                      | "Teal"
                      | "Green"
                      | "Dark Green"
                      | "Brown";
                  tak_loc: { coordinates: number[]; type: "Point" }
                  | null;
                  tak_loc_freq: number;
                  tak_phone: string;
                  tak_remarks: string;
                  tak_role:
                      | "Team Member"
                      | "Team Lead"
                      | "HQ"
                      | "Sniper"
                      | "Medic"
                      | "Forward Observer"
                      | "RTO"
                      | "K9";
                  tak_type: string;
                  updated: string;
                  username: string;
              }[K]
              | undefined,
          >;
      }

      • get: <
            K extends
                | "created"
                | "active"
                | "updated"
                | "username"
                | "disabled"
                | "last_login"
                | "system_admin"
                | "agency_admin"
                | "tak_callsign"
                | "tak_remarks"
                | "tak_phone"
                | "tak_group"
                | "tak_role"
                | "tak_type"
                | "tak_loc"
                | "tak_loc_freq"
                | "menu_order"
                | "display_projection"
                | "display_zoom"
                | "display_style"
                | "display_coordinate"
                | "display_icon_rotation"
                | "display_stale"
                | "display_text"
                | "display_distance"
                | "display_elevation"
                | "display_area"
                | "display_speed"
                | "display_radiation_dose"
                | "display_wakelock"
                | "notification_contact"
                | "notification_import"
                | "notification_alert"
                | "notification_medical"
                | "notification_mission"
                | "notification_chat"
                | "geometry_point_type"
                | "geometry_point_color"
                | "geometry_point_icon",
        >(
            key: K,
        ) => Promise<
            | {
                active: boolean;
                agency_admin: number[];
                created: string;
                disabled: boolean;
                display_area: "square meter"
                | "square feet"
                | "acre"
                | "hectare";
                display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                display_distance: "meter" | "kilometer" | "mile";
                display_elevation: "meter" | "feet";
                display_icon_rotation: boolean;
                display_projection: "mercator" | "globe";
                display_radiation_dose: "sieverts" | "rems";
                display_speed: "m/s" | "km/h" | "mi/h";
                display_stale:
                    | "Immediate"
                    | "10 Minutes"
                    | "30 Minutes"
                    | "1 Hour"
                    | "Never";
                display_style: "System Default"
                | "Light"
                | "Dark";
                display_text: "Small" | "Medium" | "Large";
                display_wakelock: "Default" | "Charging" | "Always On";
                display_zoom: "always" | "conditional" | "never";
                geometry_point_color?: string;
                geometry_point_icon?: string;
                geometry_point_type?: string;
                last_login: string | null;
                menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                notification_alert: boolean;
                notification_chat: boolean;
                notification_contact: boolean;
                notification_import: boolean;
                notification_medical: boolean;
                notification_mission: boolean;
                system_admin: boolean;
                tak_callsign: string;
                tak_group:
                    | "White"
                    | "Yellow"
                    | "Orange"
                    | "Magenta"
                    | "Red"
                    | "Maroon"
                    | "Purple"
                    | "Dark Blue"
                    | "Blue"
                    | "Cyan"
                    | "Teal"
                    | "Green"
                    | "Dark Green"
                    | "Brown";
                tak_loc: { coordinates: number[]; type: "Point" }
                | null;
                tak_loc_freq: number;
                tak_phone: string;
                tak_remarks: string;
                tak_role:
                    | "Team Member"
                    | "Team Lead"
                    | "HQ"
                    | "Sniper"
                    | "Medic"
                    | "Forward Observer"
                    | "RTO"
                    | "K9";
                tak_type: string;
                updated: string;
                username: string;
            }[K]
            | undefined,
        >

        Current value of a profile setting

      • list: () => Promise<
            Partial<
                {
                    active: boolean;
                    agency_admin: number[];
                    created: string;
                    disabled: boolean;
                    display_area: "square meter"
                    | "square feet"
                    | "acre"
                    | "hectare";
                    display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                    display_distance: "meter" | "kilometer" | "mile";
                    display_elevation: "meter" | "feet";
                    display_icon_rotation: boolean;
                    display_projection: "mercator" | "globe";
                    display_radiation_dose: "sieverts" | "rems";
                    display_speed: "m/s" | "km/h" | "mi/h";
                    display_stale:
                        | "Immediate"
                        | "10 Minutes"
                        | "30 Minutes"
                        | "1 Hour"
                        | "Never";
                    display_style: "System Default"
                    | "Light"
                    | "Dark";
                    display_text: "Small" | "Medium" | "Large";
                    display_wakelock: "Default" | "Charging" | "Always On";
                    display_zoom: "always" | "conditional" | "never";
                    geometry_point_color?: string;
                    geometry_point_icon?: string;
                    geometry_point_type?: string;
                    last_login: string | null;
                    menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                    notification_alert: boolean;
                    notification_chat: boolean;
                    notification_contact: boolean;
                    notification_import: boolean;
                    notification_medical: boolean;
                    notification_mission: boolean;
                    system_admin: boolean;
                    tak_callsign: string;
                    tak_group:
                        | "White"
                        | "Yellow"
                        | "Orange"
                        | "Magenta"
                        | "Red"
                        | "Maroon"
                        | "Purple"
                        | "Dark Blue"
                        | "Blue"
                        | "Cyan"
                        | "Teal"
                        | "Green"
                        | "Dark Green"
                        | "Brown";
                    tak_loc: { coordinates: number[]; type: "Point" }
                    | null;
                    tak_loc_freq: number;
                    tak_phone: string;
                    tak_remarks: string;
                    tak_role:
                        | "Team Member"
                        | "Team Lead"
                        | "HQ"
                        | "Sniper"
                        | "Medic"
                        | "Forward Observer"
                        | "RTO"
                        | "K9";
                    tak_type: string;
                    updated: string;
                    username: string;
                },
            >,
        >

        Every profile setting currently synced

      • stream: <
            K extends
                | "created"
                | "active"
                | "updated"
                | "username"
                | "disabled"
                | "last_login"
                | "system_admin"
                | "agency_admin"
                | "tak_callsign"
                | "tak_remarks"
                | "tak_phone"
                | "tak_group"
                | "tak_role"
                | "tak_type"
                | "tak_loc"
                | "tak_loc_freq"
                | "menu_order"
                | "display_projection"
                | "display_zoom"
                | "display_style"
                | "display_coordinate"
                | "display_icon_rotation"
                | "display_stale"
                | "display_text"
                | "display_distance"
                | "display_elevation"
                | "display_area"
                | "display_speed"
                | "display_radiation_dose"
                | "display_wakelock"
                | "notification_contact"
                | "notification_import"
                | "notification_alert"
                | "notification_medical"
                | "notification_mission"
                | "notification_chat"
                | "geometry_point_type"
                | "geometry_point_color"
                | "geometry_point_icon",
        >(
            key: K,
        ) => Observable<
            | {
                active: boolean;
                agency_admin: number[];
                created: string;
                disabled: boolean;
                display_area: "square meter"
                | "square feet"
                | "acre"
                | "hectare";
                display_coordinate: "dd" | "dm" | "dms" | "mgrs" | "utm";
                display_distance: "meter" | "kilometer" | "mile";
                display_elevation: "meter" | "feet";
                display_icon_rotation: boolean;
                display_projection: "mercator" | "globe";
                display_radiation_dose: "sieverts" | "rems";
                display_speed: "m/s" | "km/h" | "mi/h";
                display_stale:
                    | "Immediate"
                    | "10 Minutes"
                    | "30 Minutes"
                    | "1 Hour"
                    | "Never";
                display_style: "System Default"
                | "Light"
                | "Dark";
                display_text: "Small" | "Medium" | "Large";
                display_wakelock: "Default" | "Charging" | "Always On";
                display_zoom: "always" | "conditional" | "never";
                geometry_point_color?: string;
                geometry_point_icon?: string;
                geometry_point_type?: string;
                last_login: string | null;
                menu_order: { key: string; visibility: "full" | "hidden" | "partial" }[];
                notification_alert: boolean;
                notification_chat: boolean;
                notification_contact: boolean;
                notification_import: boolean;
                notification_medical: boolean;
                notification_mission: boolean;
                system_admin: boolean;
                tak_callsign: string;
                tak_group:
                    | "White"
                    | "Yellow"
                    | "Orange"
                    | "Magenta"
                    | "Red"
                    | "Maroon"
                    | "Purple"
                    | "Dark Blue"
                    | "Blue"
                    | "Cyan"
                    | "Teal"
                    | "Green"
                    | "Dark Green"
                    | "Brown";
                tak_loc: { coordinates: number[]; type: "Point" }
                | null;
                tak_loc_freq: number;
                tak_phone: string;
                tak_remarks: string;
                tak_role:
                    | "Team Member"
                    | "Team Lead"
                    | "HQ"
                    | "Sniper"
                    | "Medic"
                    | "Forward Observer"
                    | "RTO"
                    | "K9";
                tak_type: string;
                updated: string;
                username: string;
            }[K]
            | undefined,
        >

        Stream a profile setting, emitting its current value and every later change so views can follow the user's choice live

    • get routes(): { add: (route: RouteRecordRaw, parentName?: string) => void }

      Manage Application Routes

      Returns { add: (route: RouteRecordRaw, parentName?: string) => void }

      • add: (route: RouteRecordRaw, parentName?: string) => void

        Add a new route to the application