import { type TUnreachable } from '../../../system/unreachable/index.mjs'; import { type TSchema } from '../../types/index.mjs'; import { type TUnionToTuple } from '../helpers/index.mjs'; import { type TProperties } from '../../types/properties.mjs'; import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs'; import { type TEvaluateUnionFast } from '../evaluate/evaluate.mjs'; type TFromPropertyKeys = (Keys extends [infer Left extends PropertyKey, ...infer Right extends PropertyKey[]] ? Left extends TLiteralValue ? TFromPropertyKeys]> : TUnreachable : Result); export type TFromObject, Variants extends TSchema[] = TFromPropertyKeys, Result extends TSchema = TEvaluateUnionFast> = Result; export declare function FromObject(properties: Properties): TFromObject; export {};