export interface IValueModelReadonly { readonly value: TValue; } export interface IValueModel extends IValueModelReadonly { value: TValue; } export interface ILabel { readonly label: T; } export interface IResettableModel { readonly reset: () => void; readonly isDefault?: boolean; } export interface IFocusableModel { focused: boolean; } export interface IErrorModel { readonly error: string; } export interface ICountableModel { readonly count: number; readonly selectedCount?: number; readonly isEmpty: boolean; } /** Lighter version of ES2015 Map with no constructor/symbols stuff. */ export type IMapModel = Pick, 'clear' | 'delete' | 'get' | 'has' | 'set' | 'size' | 'entries' | 'keys' | 'values' | 'forEach'>;