```js
// @noErrors
import {
derived,
fromStore,
get,
readable,
readonly,
toStore,
writable
} from 'svelte/store';
```
## derived
Derived value store by synchronizing one or more readable stores and
applying an aggregation function over its input values.
```dts
function derived(
stores: S,
fn: (
values: StoresValues,
set: (value: T) => void,
update: (fn: Updater) => void
) => Unsubscriber | void,
initial_value?: T | undefined
): Readable;
```
```dts
function derived(
stores: S,
fn: (values: StoresValues) => T,
initial_value?: T | undefined
): Readable;
```
## fromStore
```dts
function fromStore(store: Writable): {
current: V;
};
```
```dts
function fromStore(store: Readable): {
readonly current: V;
};
```
## get
Get the current value from a store by subscribing and immediately unsubscribing.
```dts
function get(store: Readable): T;
```
## readable
Creates a `Readable` store that allows reading by subscription.
```dts
function readable(
value?: T | undefined,
start?: StartStopNotifier | undefined
): Readable;
```
## readonly
Takes a store and returns a new one derived from the old one that is readable.
```dts
function readonly(store: Readable): Readable;
```
## toStore
```dts
function toStore(
get: () => V,
set: (v: V) => void
): Writable;
```
```dts
function toStore(get: () => V): Readable;
```
## writable
Create a `Writable` store that allows both updating and reading by subscription.
```dts
function writable(
value?: T | undefined,
start?: StartStopNotifier | undefined
): Writable;
```
## Readable
Readable interface for subscribing.
```dts
interface Readable
{/*…*/}
```
```dts
subscribe(this: void, run: Subscriber
, invalidate?: () => void): Unsubscriber;
```
- `run` subscription callback
- `invalidate` cleanup callback
Subscribe on value changes.
## StartStopNotifier
Start and stop notification callbacks.
This function is called when the first subscriber subscribes.
```dts
type StartStopNotifier = (
set: (value: T) => void,
update: (fn: Updater) => void
) => void | (() => void);
```
## Subscriber
Callback to inform of a value updates.
```dts
type Subscriber = (value: T) => void;
```
## Unsubscriber
Unsubscribes from value updates.
```dts
type Unsubscriber = () => void;
```
## Updater
Callback to update a value.
```dts
type Updater = (value: T) => T;
```
## Writable
Writable interface for both updating and subscribing.
```dts
interface Writable
extends Readable {/*…*/}
```
```dts
set(this: void, value: T): void;
```
- `value` to set
Set value and inform subscribers.
```dts
update(this: void, updater: Updater
): void;
```
- `updater` callback
Update value using callback and inform subscribers.