## Extended Functional Type - Remote
In addition to `constant`, `exported`, `imported`, and `reactive`, Lightview supports the functional types `remote`,
`shared`, and `observed`.
- `remote` automatically gets a value from a URL
- `shared` automatically synchronizes a value across all instances of the same component
- `observed` in like import, except it changes the variable value every time its corresponding attribute changes on the component
These types must be loaded from the file `types.js` as shown in the example REPL.
If you want to import all of them in an efficient manner, do this:
```javascript
const {remote, shared, observed} = await import("../types.js");
this.variables(
{ remote: "function"},
{ constant: remote }
);
this.variables(
{ remote: "function"},
{ constant: shared }
);
this.variables(
{ remote: "function"},
{ constant: observed }
);
```
For the demo REPL, the file located at `./tutorial/remote-value.json` has the contents `{"name":"joe","age":27}`. Try replacing
`./tutorial/remote-value.json` with `http://api.open-notify.org/astros.json` to see how many people are in space right now.
You may have noted that although `remote` is imported as a function, it is not used as such. For details on how to use
`remote` with a configuration object to support TTL based auto-refresh, automatically sending changed values to the server
and custom get/patch see the [API documentation](../api.html#remote).
The `observed` and `shared` types are covered on the next pages.