import type { Args, GenericFn, GenericResolver } from ".."; /** * Create a pair with one element. * * Sig: `(x: T) => readonly [T, T]` * * @example * ```typescript * type R1 = Duplicate<1>; * // ^?: readonly [1, 1] * type R2 = Duplicate<"foo" | false>; * // ^?: readonly ["foo" | false, "foo" | false] * ``` */ export type Duplicate = readonly [T, T]; interface Resolver extends GenericResolver<[unknown], readonly [unknown, unknown]> { on1: ([x]: Args) => [[], readonly [typeof x, typeof x]]; } /** * [Fn] Create a tuple with one element. * * Sig: `(x: T) => readonly [T]` */ export default interface DuplicateFn extends GenericFn { def: ([x]: Args) => Duplicate; }