/** * 任意のコンストラクター関数を表す型です。 */ interface Constructor { new (...args: any): any; } /** * 特定のクラス(値オブジェクト)のカスタムな `toJSON` メソッドを登録します。 * 登録されたクラスのインスタンスは、`jsonify` 関数でシリアライズされる際に、このカスタムな `toJSON` メソッドが呼ばれます。 * * @template TConstructor 登録するコンストラクターの型です。 * @param constructor `toJSON` メソッドを登録するクラスのコンストラクターです。 * @param toJson 登録する `toJSON` メソッドです。`this` は `constructor` のインスタンスとなります。 */ declare function registerConstructor(constructor: TConstructor, toJson: (this: InstanceType) => unknown): void; /** * 登録されたカスタムな `toJSON` メソッドを解除します。 * * @template TConstructor 登録を解除するコンストラクターの型です。 * @param constructor `toJSON` メソッドの登録を解除するクラスのコンストラクターです。 * @returns 登録が解除された場合は `true`、そうでなければ `false` を返します。 */ declare function unregisterConstructor(constructor: TConstructor): boolean; /** * 登録されたすべてのカスタムな `toJSON` メソッドを解除します。 */ declare function clearConstructors(): void; /** * オブジェクトを JSON 形式に変換します。`BigInt` は `Number` に変換します。 * この関数はデータベースの行データを JSON 形式に変換するために使用されます。 * * @param input 変換するオブジェクトです。 * @returns JSON 形式に変換されたオブジェクトです。 */ declare function jsonify(input: unknown): unknown; /** * オブジェクトを JSON 形式に変換する関数のインターフェースです。 * この関数はデータベースの行データを JSON 形式に変換するために使用されます。 */ export interface IJsonify { /** * オブジェクトを JSON 形式に変換します。 * * @param input 変換するオブジェクトです。 * @returns JSON 形式に変換されたオブジェクトです。 */ (input: unknown): unknown; } declare const _default: typeof jsonify & { /** * 登録されたすべてのカスタムな `toJSON` メソッドを解除するための関数です。 */ clear: typeof clearConstructors; /** * カスタムな `toJSON` メソッドを登録するための関数です。 */ register: typeof registerConstructor; /** * カスタムな `toJSON` メソッドの登録を解除するための関数です。 */ unregister: typeof unregisterConstructor; }; export default _default; //# sourceMappingURL=jsonify.d.ts.map