import { type EntityProperty, type IsolationLevel } from '@mikro-orm/core'; import { AbstractSqlPlatform } from '../../AbstractSqlPlatform.js'; import { SqliteNativeQueryBuilder } from './SqliteNativeQueryBuilder.js'; import { SqliteSchemaHelper } from './SqliteSchemaHelper.js'; import { SqliteExceptionConverter } from './SqliteExceptionConverter.js'; export declare class SqlitePlatform extends AbstractSqlPlatform { protected readonly schemaHelper: SqliteSchemaHelper; protected readonly exceptionConverter: SqliteExceptionConverter; /** @internal */ createNativeQueryBuilder(): SqliteNativeQueryBuilder; usesDefaultKeyword(): boolean; usesReturningStatement(): boolean; usesEnumCheckConstraints(): boolean; getCurrentTimestampSQL(length: number): string; getDateTimeTypeDeclarationSQL(column: { length: number }): string; getBeginTransactionSQL(options?: { isolationLevel?: IsolationLevel; readOnly?: boolean }): string[]; getEnumTypeDeclarationSQL(column: { items?: unknown[]; fieldNames: string[]; length?: number; unsigned?: boolean; autoincrement?: boolean; }): string; getTinyIntTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string; getSmallIntTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string; getIntegerTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string; getFloatDeclarationSQL(): string; getBooleanTypeDeclarationSQL(): string; getCharTypeDeclarationSQL(column: { length?: number }): string; getVarcharTypeDeclarationSQL(column: { length?: number }): string; normalizeColumnType( type: string, options: { length?: number; precision?: number; scale?: number; }, ): string; convertsJsonAutomatically(): boolean; /** * This is used to narrow the value of Date properties as they will be stored as timestamps in sqlite. * We use this method to convert Dates to timestamps when computing the changeset, so we have the right * data type in the payload as well as in original entity data. Without that, we would end up with diffs * including all Date properties, as we would be comparing Date object with timestamp. */ processDateProperty(value: unknown): string | number | Date; getIndexName( tableName: string, columns: string[], type: 'index' | 'unique' | 'foreign' | 'primary' | 'sequence', ): string; supportsDeferredUniqueConstraints(): boolean; /** * SQLite supports schemas via ATTACH DATABASE. Returns true when there are * attached databases configured. */ supportsSchemas(): boolean; getDefaultSchemaName(): string | undefined; getFullTextWhereClause(): string; escape(value: any): string; convertVersionValue( value: Date | number, prop: EntityProperty, ): | number | { $in: (string | number)[]; }; getJsonArrayElementPropertySQL(alias: string, property: string, _type: string): string; quoteValue(value: any): string; }