import {expectType} from 'tsd'; import type {StringRepeat} from '../index.d.ts'; declare const unknown: unknown; expectType>(''); expectType>(unknown as never); expectType>(''); expectType>(unknown as never); expectType>(''); expectType>(unknown as string); expectType>(unknown as string); expectType>(unknown as never); expectType>(''); expectType>('0'); expectType>('00000'); expectType>(''); expectType>('012345-'); expectType>('012345-012345-012345-012345-012345-'); // Non literal strings expectType>(unknown as string); expectType>(unknown as `abc${string}abc${string}`); expectType, 2>>(unknown as `${Uppercase}${Uppercase}`); // Union cases expectType>(unknown as '00000' | '11111'); expectType>(unknown as '0000' | '00000'); expectType>(unknown as '0000' | '00000' | '1111' | '11111'); // Recursion depth at which a non-tail recursive implementation starts to fail. const fiftyZeroes = '00000000000000000000000000000000000000000000000000'; expectType>(fiftyZeroes); // Maximum allowed recursion depth for a tail recursive implementation. // eslint-disable-next-line @stylistic/max-len const nineHundredNinetyNineZeroes = '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'; expectType>(nineHundredNinetyNineZeroes);