import { type TTemplateLiteralGenerate, type TTemplateLiteral } from '../template-literal/index'; import type { TLiteral, TLiteralValue } from '../literal/index'; import type { TInteger } from '../integer/index'; import type { TNumber } from '../number/index'; import type { TSchema } from '../schema/index'; import type { TUnion } from '../union/index'; type TFromTemplateLiteral> = (Keys); type TFromUnion = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromUnion]> : Result); type TFromLiteral = (LiteralValue extends PropertyKey ? [`${LiteralValue}`] : []); export type TIndexPropertyKeys = (Type extends TTemplateLiteral ? TFromTemplateLiteral : Type extends TUnion ? TFromUnion : Type extends TLiteral ? TFromLiteral : Type extends TNumber ? ['[number]'] : Type extends TInteger ? ['[number]'] : [ ]); /** Returns a tuple of PropertyKeys derived from the given TSchema */ export declare function IndexPropertyKeys(type: Type): TIndexPropertyKeys; export {};