import { type TSchema, type TSchemaOptions } from './schema.mjs'; import { type TTypeScriptEnumLike } from '../engine/enum/typescript_enum_to_enum_values.mjs'; import { type TTypeScriptEnumToEnumValues } from '../engine/enum/typescript_enum_to_enum_values.mjs'; export type StaticEnum = (Values[number]); export type TEnumValue = string | number; /** Returns true if the given value is a EnumValue */ export declare function IsEnumValue(value: unknown): value is TEnumValue; /** Represents an Enum type. */ export interface TEnum extends TSchema { '~kind': 'Enum'; enum: Values; } /** Creates an Enum type. */ export declare function Enum(values: readonly [...Values], options?: TSchemaOptions): TEnum; /** Creates an Enum type from a TypeScript enum declaration. */ export declare function Enum(value: Enum, options?: TSchemaOptions): TEnum>; /** Returns true if the given value is a TEnum. */ export declare function IsEnum(value: unknown): value is TEnum;