import type { Assert, Trim } from '../helpers/index'; import type { TTemplateLiteral, TTemplateLiteralKind } from './index'; import { type TLiteral } from '../literal/index'; import { type TBoolean } from '../boolean/index'; import { type TBigInt } from '../bigint/index'; import { type TNumber } from '../number/index'; import { type TString } from '../string/index'; import { type TUnionEvaluated } from '../union/index'; declare function FromUnion(syntax: string): IterableIterator; declare function FromTerminal(syntax: string): IterableIterator; type FromUnionLiteral = T extends `${infer L}|${infer R}` ? [TLiteral>, ...FromUnionLiteral] : T extends `${infer L}` ? [TLiteral>] : [ ]; type FromUnion = TUnionEvaluated>; type FromTerminal = T extends 'boolean' ? TBoolean : T extends 'bigint' ? TBigInt : T extends 'number' ? TNumber : T extends 'string' ? TString : FromUnion; type FromString = T extends `{${infer L}}${infer R}` ? [FromTerminal, ...FromString] : T extends `${infer L}$\{${infer R1}\}${infer R2}` ? [TLiteral, ...FromString<`{${R1}}`>, ...FromString] : T extends `${infer L}$\{${infer R1}\}` ? [TLiteral, ...FromString<`{${R1}}`>] : T extends `${infer L}` ? [TLiteral] : [ ]; export type TTemplateLiteralSyntax = (TTemplateLiteral, TTemplateLiteralKind[]>>); /** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */ export declare function TemplateLiteralSyntax(syntax: string): TTemplateLiteralKind[]; export {};