export interface StoreLike { readonly state: T; /** * @param handler function that will be called when the state changes * @returns teardown function that will remove the handler from the store */ observe(handler: (state: T) => void): () => void; } export type StoreState = T extends StoreLike ? S : never; export declare class Store implements StoreLike { private readonly _handlers; constructor(state: T); private _state; get state(): T; set state(value: T); /** * @inheritdoc */ observe(handler: (state: T) => void): () => void; }