import {expectNotAssignable, expectType, expectAssignable} from 'tsd'; import type {ArrayValues} from '../index'; const values = ['a', 'b', 'c'] as const; type Values = ArrayValues; declare const test: 'a' | 'b' | 'c'; expectType(test); expectAssignable('a'); expectAssignable('b'); expectAssignable('c'); expectNotAssignable(''); expectNotAssignable(0); type TupleValues = ArrayValues<['1', 2, {c: true}]>; declare const testTuple: '1' | 2 | {c: true}; expectType(testTuple); expectAssignable('1'); expectAssignable(2); expectAssignable({c: true}); expectNotAssignable({}); expectNotAssignable(1); expectNotAssignable('2'); type AnyStringValues = ArrayValues; expectAssignable(''); expectAssignable('123'); expectNotAssignable(123); expectNotAssignable(undefined); expectNotAssignable(null);