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 {};