import type { Args, GenericFn, GenericResolver } from "../HKT"; export type Get = K extends keyof O ? O[K] : never; interface Resolver extends GenericResolver<[PropertyKey, object], object> { on1_: ([k]: Args) => [[{ readonly [P in typeof k]: any }], unknown]; on_1: ([, o]: Args) => [[keyof typeof o], (typeof o)[keyof typeof o]]; on11: ([k, o]: Args) => [ [], typeof k extends infer K extends keyof typeof o ? (typeof o)[K] : never, ]; } export default interface GetFn extends GenericFn { def: ([k, o]: Args) => typeof k extends keyof typeof o ? (typeof o)[typeof k] : never; }