import { Numeric } from "../../core/numeric.js"; import type { BooleanLiteral, Entity, NumericLiteral, StringLiteral } from "../../core/types.js"; /** * A Typekit for working with literal types(string, numeric, boolean). * * @typekit literal */ export interface LiteralKit { /** * Create a literal type from a JavaScript value. * * @param value The JavaScript value to turn into a TypeSpec literal type. */ create(value: string | number | boolean): StringLiteral | NumericLiteral | BooleanLiteral; /** * Create a string literal type from a JavaScript string value. * * @param value The string value. */ createString(value: string): StringLiteral; /** * Create a numeric literal type from a JavaScript number value. * * @param value The numeric value. */ createNumeric(value: number | Numeric): NumericLiteral; /** * Create a boolean literal type from a JavaScript boolean value. * * @param value The boolean value. */ createBoolean(value: boolean): BooleanLiteral; /** * Check if `type` is a literal type. * * @param type The type to check. */ is(type: Entity): type is StringLiteral | NumericLiteral | BooleanLiteral; /** * Check if `type` is a string literal type. * * @param type The type to check. */ isString(type: Entity): type is StringLiteral; /** * Check if `type` is a numeric literal type. * * @param type The type to check. */ isNumeric(type: Entity): type is NumericLiteral; /** * Check if `type` is a boolean literal type. * * @param type The type to check. */ isBoolean(type: Entity): type is BooleanLiteral; } interface TypekitExtension { /** * Utilities for working with literal types. * * Literal types are types that represent a single value, such as a string, * number, or boolean. */ literal: LiteralKit; } declare module "../define-kit.js" { interface Typekit extends TypekitExtension { } } export {}; //# sourceMappingURL=literal.d.ts.map