import type * as T from '@traversable/registry'; import * as t from './schema.js'; /** * Note: strictly speaking, `undefined` is not a valid JSON value. It's * included here because in practice `JSON.stringify(undefined)` returns * `undefined` instead of the empty string. */ export type Json = [T] extends [never] ? Json.Fixpoint : Json.Unary; export declare namespace Json { type Scalar = undefined | null | boolean | number | string; type Unary = Scalar | readonly T[] | { [x: string]: T; }; interface Free extends T.HKT { [-1]: Json.Unary; } type Fixpoint = Scalar | readonly Fixpoint[] | { [x: string]: Fixpoint; }; } export declare const JsonFunctor: T.Functor; export type Options = { namespaceAlias?: string; typeName?: string; }; export declare const defaults: { namespaceAlias: string; typeName: string; }; export declare function schemaToString(schema: t.Type, options?: Pick): string; export declare function schemaToString(schema: t.Schema, options?: Pick): string; export declare function toType(schema: t.Type, options?: Pick): string; export declare function jsonToType(json: Json, options?: Pick): string; //# sourceMappingURL=recursive.d.ts.map