import type { ValueIR } from '../../value-ir.js'; import type { SemanticEnv } from './index.js'; export declare const REGEXP_VALUE_TAG: unique symbol; export interface RegExpValue { readonly [REGEXP_VALUE_TAG]: true; readonly pattern: string; readonly flags: string; } export declare function makeRegExpValue(pattern: string, flags: string): RegExpValue; export declare function isRegExpValue(value: unknown): value is RegExpValue; export declare const REGEXP_MATCH_VALUE_TAG: unique symbol; export interface RegExpMatchValue { readonly [REGEXP_MATCH_VALUE_TAG]: true; readonly full: string; readonly groups: readonly (string | null)[]; readonly index: number; readonly named: Readonly>; } export declare function makeRegExpMatchValue(value: { full: string; groups: readonly (string | null)[]; index: number; named: Readonly>; }): RegExpMatchValue; export declare function isRegExpMatchValue(value: unknown): value is RegExpMatchValue; export declare const REGEXP_MATCH_LIST_VALUE_TAG: unique symbol; export interface RegExpMatchListValue { readonly [REGEXP_MATCH_LIST_VALUE_TAG]: true; readonly items: readonly unknown[]; } export declare function makeRegExpMatchListValue(items: readonly unknown[]): RegExpMatchListValue; export declare function isRegExpMatchListValue(value: unknown): value is RegExpMatchListValue; export declare function isRegexTestExpression(node: ValueIR): boolean; export declare function isRegexMatchExpression(node: ValueIR): boolean; export declare function evalRegexTestExpression(node: ValueIR, env: SemanticEnv): boolean; export declare function evalRegexMatchExpression(node: ValueIR, env: SemanticEnv): { full: string; groups: (string | null)[]; index: number; named: Record; } | null; export declare function isRegexGlobalMatchExpression(node: ValueIR): boolean; export declare function isRegexMatchAllExpression(node: ValueIR): boolean; export declare function evalRegexGlobalMatchExpression(node: ValueIR, env: SemanticEnv): string[] | null; export declare function evalRegexMatchAllExpression(node: ValueIR, env: SemanticEnv): { full: string; groups: (string | null)[]; index: number; }[]; export declare function isRegexSplitExpression(node: ValueIR): boolean; export declare function isRegexReplaceExpression(node: ValueIR): boolean; export declare function evalRegexSplitExpression(node: ValueIR, env: SemanticEnv): (string | null)[]; export declare function evalRegexReplaceExpression(node: ValueIR, env: SemanticEnv): string; export declare function isRunnerNativeRegexFailClose(error: unknown): boolean;