import type { Args, GenericFn, GenericResolver } from "../HKT"; import type { None, Option, Some } from "../Option"; export type TryGet = K extends keyof O ? Some : None; interface Resolver extends GenericResolver<[PropertyKey, object], Option> { on1_: ([k]: Args) => [[object], Option]; on_1: ([, o]: Args) => [[PropertyKey], Option<(typeof o)[keyof typeof o]>]; on11: ([k, o]: Args) => [[], Option<(typeof o)[keyof typeof o]>]; } export default interface TryGetFn extends GenericFn { def: ([k, o]: Args) => TryGet; }