import * as Char from './char'; type LineComment = typeof LineComment; type OpenComment = typeof OpenComment; type CloseComment = typeof CloseComment; declare const LineComment = "//"; declare const OpenComment = "/*"; declare const CloseComment = "*/"; type TDiscardMultiLineComment = (Input extends `${string}${CloseComment}${infer Rest extends string}` ? Rest : ''); type TDiscardLineComment = (Input extends `${string}${Char.TNewLine}${infer Rest extends string}` ? TTrimWhitespace<`${Char.TNewLine}${Rest}`> : ''); type W4 = `${W3}${W3}`; type W3 = `${W2}${W2}`; type W2 = `${W1}${W1}`; type W1 = `${W0}${W0}`; type W0 = ` `; export type TTrimWhitespace = (Input extends `${OpenComment}${infer Rest extends string}` ? TTrimWhitespace> : Input extends `${LineComment}${infer Rest extends string}` ? TTrimWhitespace> : Input extends `${W4}${infer Rest extends string}` ? TTrimWhitespace : Input extends `${W3}${infer Rest extends string}` ? TTrimWhitespace : Input extends `${W1}${infer Rest extends string}` ? TTrimWhitespace : Input extends `${W0}${infer Rest extends string}` ? TTrimWhitespace : Input); export declare function TrimWhitespace(input: Input): TTrimWhitespace; export type TTrim = (Input extends `${OpenComment}${infer Rest extends string}` ? TTrim> : Input extends `${LineComment}${infer Rest extends string}` ? TTrim> : Input extends `${Char.TNewLine}${infer Rest extends string}` ? TTrim : Input extends `${Char.TTabSpace}${infer Rest extends string}` ? TTrim : Input extends `${W4}${infer Rest extends string}` ? TTrim : Input extends `${W3}${infer Rest extends string}` ? TTrim : Input extends `${W1}${infer Rest extends string}` ? TTrim : Input extends `${W0}${infer Rest extends string}` ? TTrim : Input); export declare function Trim(input: Input): TTrim; export {};