export interface SelectFuncResult { changed?: boolean; value: T; } type SelectFunc = (options: any, last?: false | T) => T; export interface SelectorResult { changed: boolean; value: ReturnType["value"]; } export type SelectorResultsObj = { [propName: string]: SelectFuncResult; }; export type CombinedSelectorResults = { value: { [P in keyof T]: T[P]["value"] }; changed: boolean; };