import type { Expression } from "../../parse.js";
import { Budget } from "../budget.js";
import { type SandboxClosure, type SandboxValue } from "../values.js";
type StringMethodName = "at" | "charAt" | "charCodeAt" | "codePointAt" | "concat" | "endsWith" | "includes" | "indexOf" | "lastIndexOf" | "match" | "matchAll" | "normalize" | "padEnd" | "padStart" | "repeat" | "replace" | "replaceAll" | "slice" | "search" | "split" | "startsWith" | "substr" | "substring" | "toLowerCase" | "toUpperCase" | "trim" | "trimEnd" | "trimStart";
export declare function getStringMember(value: string, property: string | number, budget: Budget): SandboxValue | undefined;
export declare function isStringMethodName(property: string | number): property is StringMethodName;
export declare function validateStringMethodArguments(_methodName: StringMethodName, _args: readonly Expression[]): void;
export declare function callStringMethod(value: string, methodName: StringMethodName, args: readonly SandboxValue[], budget: Budget, callClosure?: (closure: SandboxClosure, args: readonly SandboxValue[]) => Promise<SandboxValue>): SandboxValue | Promise<SandboxValue>;
export {};
