import { type TSchema } from '../../types/schema.mjs'; import { type TLiteral } from '../../types/literal.mjs'; import { type TNumber } from '../../types/number.mjs'; import { type TInteger } from '../../types/integer.mjs'; import { type TEvaluateUnionFast } from '../evaluate/evaluate.mjs'; import { type TExtends, ExtendsResult } from '../../extends/index.mjs'; import { type TFormatArrayIndexer } from './array_indexer.mjs'; type TIndexElementsWithIndexer = (Types extends [...infer Left extends TSchema[], infer Right extends TSchema] ? TExtends<{}, TLiteral, Indexer> extends ExtendsResult.TExtendsTrueLike ? TIndexElementsWithIndexer : TIndexElementsWithIndexer : Result); type TFromTupleWithIndexer, Elements extends TSchema[] = TIndexElementsWithIndexer, Result extends TSchema = TEvaluateUnionFast> = Result; type TFromTupleWithoutIndexer> = Result; export type TFromTuple ? TLiteral : Indexer extends TNumber | TInteger ? TFromTupleWithoutIndexer : TFromTupleWithIndexer)> = Result; export declare function FromTuple(types: [...Types], indexer: Indexer): TFromTuple; export {};