import type { ParsedValue } from './types'; export declare class CustomValueError extends Error { fallbackValue: string; constructor(message: string, fallbackValue: string); } export interface Box { type: Type; value: Value; flatValue: string | undefined; } export declare function box(type: Type, value: Value, flatValue?: string): Box; export declare function boxString(value: string): Box<"st-string", string>; export declare function unbox>(boxed: B | string, unboxPrimitives?: boolean, customValues?: CustomTypes, node?: ParsedValue): any; export interface BoxedValueMap { [k: string]: string | Box; } export type BoxedValueArray = Array>; type CustomTypes = Record>; export interface CustomValueExtension { flattenValue?: FlattenValue; evalVarAst(valueAst: ParsedValue, customTypes: { [typeID: string]: CustomValueExtension; }, boxPrimitive?: boolean): Box; getValue(path: string[], value: Box, node: ParsedValue, customTypes: CustomTypes): string; } export declare const stTypes: CustomTypes; export declare const deprecatedStFunctions: Record; export declare const CustomValueStrategy: { args: (fnNode: ParsedValue, customTypes: CustomTypes, boxPrimitive?: boolean) => any[]; named: (fnNode: ParsedValue, customTypes: CustomTypes, boxPrimitive?: boolean) => BoxedValueMap; }; export interface JSValueExtension { _kind: 'CustomValue'; register(localTypeSymbol: string): CustomValueExtension; } type FlattenValue = (v: Box) => { parts: Array>; delimiter: ',' | ' '; }; interface ExtensionApi { processArgs: (fnNode: ParsedValue, customTypes: CustomTypes, boxPrimitive?: boolean) => Args; createValue: (args: Args) => Value; getValue: (v: Value, key: string) => string | Box; flattenValue?: FlattenValue; } export declare function createCustomValue({ processArgs, createValue, flattenValue, getValue, }: ExtensionApi): JSValueExtension; export declare function isCustomValue(symbol: any): symbol is JSValueExtension; export {}; //# sourceMappingURL=custom-values.d.ts.map