import { BaseTypeOptions, OptionsInput, TypeInterface, } from '../types/type-definitions.js'; export type StringTypeOptions< E extends ReadonlyArray = ReadonlyArray, > = BaseTypeOptions & { enum?: readonly [...E]; }; export type StringType = TypeInterface<'string', Options>; export function StringType(): StringType; export function StringType>( options: Options & (Options['enum'] extends ReadonlyArray ? { enum: readonly [...Options['enum']]; } : {}) ): StringType; export function StringType(options?: any): any { return { type: 'string', config: { enum: options?.enum, nullable: options?.nullable, default: options?.default, }, } satisfies StringType; }