import { Opt } from "@effect-ts-app/core/Option"; import { Some, None } from "@fp-ts/data/Option"; import * as HashMap from "@effect-ts/core/Collections/Immutable/HashMap"; import type { Compute, UnionToIntersection } from "@effect-ts/core/Utils"; import * as S from "../custom.js"; import type { Annotation } from "../custom/_schema/annotation.js"; export declare class FromProperty, Def extends Opt<["parser" | "constructor" | "both", () => S.ParsedShapeOf]>> { readonly _as: As; readonly _schema: Self; readonly _optional: Optional; readonly _def: Def; readonly _map: HashMap.HashMap, any>; constructor(_as: As, _schema: Self, _optional: Optional, _def: Def, _map: HashMap.HashMap, any>); } export declare function fromPropFrom, Def extends Opt<["parser" | "constructor" | "both", () => S.ParsedShapeOf]>, As1 extends PropertyKey>(prop: FromProperty, as: As1): FromProperty, Def>; export declare function fromProp(schema: Self): FromProperty; export type AnyFromProperty = FromProperty; export type FromPropertyRecord = Record; export type ShapeFromFromProperties = Compute; } : { readonly [h in k]: S.ParsedShapeOf; } : never; }[keyof Props]>, "flat">; export type ConstructorFromFromProperties = Compute ? never : Props[k] extends AnyFromProperty ? Props[k]["_optional"] extends "optional" ? { readonly [h in k]?: S.ParsedShapeOf; } : Props[k]["_def"] extends Some<["constructor" | "both", any]> ? { readonly [h in k]?: S.ParsedShapeOf; } : { readonly [h in k]: S.ParsedShapeOf; } : never; }[keyof Props]>, "flat">; export type EncodedFromFromProperties = Compute ? Props[k]["_as"]["value"] : k]?: S.EncodedOf; } : { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]: S.EncodedOf; } : never; }[keyof Props]>, "flat">; export type HasRequiredFromProperty = unknown extends { [k in keyof Props]: Props[k] extends AnyFromProperty ? Props[k]["_optional"] extends "required" ? unknown : never : never; }[keyof Props] ? true : false; export declare const fromPropertiesIdentifier: S.Annotation<{ props: FromPropertyRecord; }>; export type SchemaFromProperties = S.DefaultSchema, ShapeFromFromProperties, ConstructorFromFromProperties, EncodedFromFromProperties, { props: Props; }>; export type TagsFromFromProps = { [k in keyof Props]: Props[k]["_as"] extends None ? Props[k]["_optional"] extends "required" ? S.ApiOf extends S.LiteralApi ? KS extends [string] ? k : never : never : never : never; }[keyof Props]; export declare function isFromPropertyRecord(u: unknown): u is FromPropertyRecord; export declare function tagsFromFromProps(props: Props): Record; export declare function fromProps(props: Props): SchemaFromProperties; export declare function fromPropsPick(...ks: KS): (self: Props) => import("@effect-ts/core/Utils").ComputeFlat>; export declare function fromPropsOmit(...ks: KS): (self: Props) => import("@effect-ts/core/Utils").ComputeFlat>; export type ParserInputFromFromProperties = Compute ? Props[k]["_as"]["value"] : k]?: S.ParsedShapeOf; } : Props[k]["_def"] extends Some<["parser" | "both", any]> ? { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]?: S.ParsedShapeOf; } : { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]: S.ParsedShapeOf; } : never; }[keyof Props]>, "flat">; type IsAnyOrUnknown = any extends T ? never : T; type AorB = IsAnyOrUnknown extends never ? B : A; export type ParserInputFromParserInputOrEncodedFromProperties = Compute ? Props[k]["_as"]["value"] : k]?: AorB, S.EncodedOf>; } : Props[k]["_def"] extends Some<["parser" | "both", any]> ? { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]?: AorB, S.EncodedOf>; } : { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]: AorB, S.EncodedOf>; } : never; }[keyof Props]>, "flat">; export type ParserInputFromParserInputOrEncodedFromSchema = T extends { Api: { props: infer Props; }; } ? Props extends FromPropertyRecord ? ParserInputFromParserInputOrEncodedFromProperties : never : never; export type ParserInputFromEncodedFromProperties = Compute ? Props[k]["_as"]["value"] : k]?: S.EncodedOf; } : Props[k]["_def"] extends Some<["parser" | "both", any]> ? { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]?: S.EncodedOf; } : { readonly [h in Props[k]["_as"] extends Some ? Props[k]["_as"]["value"] : k]: S.EncodedOf; } : never; }[keyof Props]>, "flat">; export type ParserInputFromEncodedFromSchema = T extends { Api: { props: infer Props; }; } ? Props extends FromPropertyRecord ? ParserInputFromEncodedFromProperties : never : never; export {}; //# sourceMappingURL=fromProps.d.ts.map