import { Type, type TransformContext } from './Type.js';
import type { Platform } from '../platforms/Platform.js';
import type { EntityMetadata, EntityProperty } from '../typings.js';
/** Maps a database JSON/JSONB column to a JS object, handling serialization and deserialization. */
export declare class JsonType extends Type<unknown, string | null> {
  convertToDatabaseValue(value: unknown, platform: Platform, context?: TransformContext): string | null;
  convertToJSValueSQL(key: string, platform: Platform): string;
  convertToDatabaseValueSQL(key: string, platform: Platform): string;
  convertToJSValue(value: string | unknown, platform: Platform, context?: TransformContext): unknown;
  getColumnType(prop: EntityProperty, platform: Platform): string;
  ensureComparable<T extends object>(meta: EntityMetadata<T>, prop: EntityProperty<T>): boolean;
  compareAsType(): string;
  get runtimeType(): string;
}
