import { type TSchema } from '../../types/schema.mjs'; import { type TIntersect } from '../../types/intersect.mjs'; import { type TUnion } from '../../types/union.mjs'; import { type TLiteral, type TLiteralValue } from '../../types/literal.mjs'; import { type TNumber } from '../../types/number.mjs'; import { type TNever } from '../../types/never.mjs'; import { type TExtends, ExtendsResult } from '../../extends/index.mjs'; import { type TConvertToIntegerKey } from '../helpers/keys.mjs'; type TNormalizeLiteral>> = Result; type TNormalizeIndexerTypes = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TNormalizeIndexerTypes]> : Result); export type TNormalizeIndexer ? TIntersect> : Type extends TUnion ? TUnion> : Type extends TLiteral ? TNormalizeLiteral : Type)> = Result; export declare function NormalizeIndexer(type: Type): TNormalizeIndexer; export type TFromArray, Check extends ExtendsResult.TResult = TExtends<{}, NormalizedIndexer, TNumber>, Result extends TSchema = (Check extends ExtendsResult.TExtendsTrueLike ? Type : Indexer extends TLiteral ? TNumber : TNever)> = Result; export declare function FromArray(type: Type, indexer: Indexer): TFromArray; export {};