import type { Entity, Type, Union, UnionVariant } from "../../core/types.js"; import { DecoratorArgs } from "../utils.js"; /** * A descriptor for a union variant. */ export interface UnionVariantDescriptor { /** * The name of the union variant. */ name?: string | symbol; /** * Decorators to apply to the union variant. */ decorators?: DecoratorArgs[]; /** * The type of the union variant. */ type: Type; /** * The union that the variant belongs to. If not provided here, it is assumed * that it will be set in `union.build`. */ union?: Union; } /** * Utilities for working with union variants. * * Union variants are types that represent a single value within a union that can be one of * several types. * * @typekit unionVariant */ export interface UnionVariantKit { /** * Create a union variant. * * @param desc The descriptor of the union variant. */ create(desc: UnionVariantDescriptor): UnionVariant; /** * Check if the given `type` is a union. * * @param type The type to check. */ is(type: Entity): type is UnionVariant; } interface TypekitExtension { /** * Utilities for working with union variants. */ unionVariant: UnionVariantKit; } declare module "../define-kit.js" { interface Typekit extends TypekitExtension { } } export {}; //# sourceMappingURL=union-variant.d.ts.map