import type { ExcludeMatchingProperties } from "@0x706b/convenience-ts/Utils"; import { Any as _A } from "ts-toolbelt"; import { FieldRecord, InputRecord } from "./containers"; export declare type NonRequiredInputKeys< T extends InputRecord > = keyof ExcludeMatchingProperties< { [k in keyof T]: T[k]["config"]["required"] extends false ? k : never; }, never >; export declare type RequiredInputKeys> = Exclude< keyof T, NonRequiredInputKeys >; export declare type TypeofInputRecord> = _A.Compute< { [k in NonRequiredInputKeys]?: T[k]["_A"]; } & { [k in RequiredInputKeys]: T[k]["_A"]; }, "flat" >; export declare type NullableFieldKeys< T extends FieldRecord > = keyof ExcludeMatchingProperties< { [k in keyof T]: T[k]["config"]["nullable"] extends true ? k : never; }, never >; export declare type NonNullableFieldKeys> = Exclude< keyof T, NullableFieldKeys >; export declare type TypeofFieldRecord> = _A.Compute< { [k in NullableFieldKeys]?: T[k]["_A"]; } & { [k in NonNullableFieldKeys]: T[k]["_A"]; }, "flat" >;