export type Nxtpression<ReturnValue = unknown, Context extends Record<string, unknown> = Record<string, unknown>> = {
    /**
     * TS-HACK: this property doesn't really exist on the nxtpression string,
     * it is only here to make sure the generic Context won't get stripped.
     */
    __context: Context;
    /**
     * TS-HACK: this property doesn't really exist on the nxtpression string,
     * it is only here to make sure the generic Context won't get stripped.
     */
    __returnValue: ReturnValue;
} | string | ReturnValue;
export type ResolveNxtpressionDeep<T> = ExtractReturn<T> extends never ? T extends Array<infer U> ? ResolveNxtpressionDeep<U> : T extends object ? {
    [K in keyof T]: ResolveNxtpressionDeep<T[K]>;
} : T : ExtractReturn<T>;
type TypeWithReturn<X> = {
    __returnValue: X;
};
type ExtractReturn<Type> = Type extends TypeWithReturn<infer X> ? X : never;
export {};
