import { Observable } from 'rxjs'; /** * Base interface for all Prostore stores */ export interface IStore { /** Get current store state */ readonly state: State; /** Get store state observable to subscribe to */ readonly state$: Observable; } /** * Tries to extract store state type based off the store type */ export type IStoreState = Store extends IStore ? State : unknown;