import { type TTrim } from './internal/trim'; import { type TTake } from './internal/take'; import { type TAlpha } from './internal/char'; import { type TDigit } from './internal/char'; import { type TUnderScore } from './internal/char'; import { type TDollarSign } from './internal/char'; type TInitial = [...TAlpha, TUnderScore, TDollarSign]; type TTakeInitial = (TTake); type TRemaining = [...TInitial, ...TDigit]; type TTakeRemaining = (TTake extends [infer Remaining extends string, infer RemainingRest extends string] ? TTakeRemaining : [Result, Input]); type TTakeIdent = (TTakeInitial extends [infer Initial extends string, infer InitialRest extends string] ? TTakeRemaining extends [infer Remaining extends string, infer RemainingRest extends string] ? [`${Initial}${Remaining}`, RemainingRest] : [] : []); /** Matches if next is an Ident */ export type TIdent = (TTakeIdent>); /** Matches if next is an Ident */ export declare function Ident(input: Input): TIdent; export {};