import { Hint, JavaScriptTypeBuilder, SchemaOptions, TEnum, TEnumKey, TEnumValue, TLiteral, TUnion } from '@sinclair/typebox'; type UnionToIntersection = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never; type LastInUnion = UnionToIntersection 0 : never> extends (x: infer L) => 0 ? L : never; type DistributeLiterals = T extends T ? T extends string | number ? TLiteral : never : never; type UnionToTuple> = [U] extends [never] ? [] : [...UnionToTuple>, Last]; type TLiteralGuard = { [K in keyof T]: T[K] extends TLiteral ? T[K] : never; }; export interface TKeyOfEnum> extends TUnion>>> { [Hint]: 'KeyOfEnum'; } export declare class KeyofEnumBuilder extends JavaScriptTypeBuilder { KeyOfEnum>(schema: T, options?: SchemaOptions): TKeyOfEnum; Enum>(schema: T, options?: SchemaOptions): TEnum; } export {}; //# sourceMappingURL=keyof-enum.d.ts.map