import { Constructor } from "type-fest"; import { TASONTypeInfo } from "../TASONTypeInfo"; export declare const TASONTypeNameKey = "tason:type"; export declare const TASONTypeInfoKey = "tason:type-info"; export declare function setTypeName(ctor: Constructor, name: string): void; export declare function TASONType(name: string, typeInfo?: Omit, "ctor">): ClassDecorator; export declare function getDeclaredType(value: object): [string, TASONTypeInfo | undefined] | undefined; export declare const TypeDiscriminatorKey: unique symbol; /** 类型判别器,让类实例支持多态序列化 */ export interface TASONTypeDiscriminator { [TypeDiscriminatorKey]: () => string; }