import { Some, None } from "@fp-ts/data/Option";
import { Opt } from "@effect-ts-app/core/Option";
import { NonEmptyReadonlyArray } from "@fp-ts/data/ReadonlyArray";
import type { Misc, Union } from "ts-toolbelt";
import type * as SET from "./Set.js";
type OptOf = Union.Exclude ? X | null : A, None>;
export type TransformRoot = O extends Opt ? Transform> : Transform;
export type Transform = O extends Misc.BuiltIn | Misc.Primitive ? O : {
[K in keyof O]: OptOf extends infer X ? X extends (infer Y)[] ? OptOf>[] : X extends NonEmptyReadonlyArray ? NonEmptyReadonlyArray>> : X extends SET.Set ? SET.Set>> : X extends readonly (infer Y)[] ? readonly OptOf>[] : Transform : never;
};
export declare const encodeOptsAsNullable: (root: T) => TransformRoot;
export {};
//# sourceMappingURL=transform.d.ts.map