import { type EntityProperty, type IsolationLevel, RawQueryFragment, type SimpleColumnMeta, Type, } from '@mikro-orm/core'; import { AbstractSqlPlatform } from '../../AbstractSqlPlatform.js'; import type { IndexDef } from '../../typings.js'; import { PostgreSqlNativeQueryBuilder } from './PostgreSqlNativeQueryBuilder.js'; import { PostgreSqlSchemaHelper } from './PostgreSqlSchemaHelper.js'; import { PostgreSqlExceptionConverter } from './PostgreSqlExceptionConverter.js'; export declare class BasePostgreSqlPlatform extends AbstractSqlPlatform { #private; protected readonly schemaHelper: PostgreSqlSchemaHelper; protected readonly exceptionConverter: PostgreSqlExceptionConverter; createNativeQueryBuilder(): PostgreSqlNativeQueryBuilder; usesReturningStatement(): boolean; usesCascadeStatement(): boolean; supportsNativeEnums(): boolean; usesEnumCheckConstraints(): boolean; supportsMaterializedViews(): boolean; supportsCustomPrimaryKeyNames(): boolean; getCurrentTimestampSQL(length: number): string; getDateTimeTypeDeclarationSQL(column: { length?: number }): string; getDefaultDateTimeLength(): number; getTimeTypeDeclarationSQL(): string; getIntegerTypeDeclarationSQL(column: { length?: number; autoincrement?: boolean; generated?: string }): string; getBigIntTypeDeclarationSQL(column: { autoincrement?: boolean }): string; getTinyIntTypeDeclarationSQL(column: { length?: number; unsigned?: boolean; autoincrement?: boolean }): string; getUuidTypeDeclarationSQL(column: { length?: number }): string; getFullTextWhereClause(prop: EntityProperty): string; supportsCreatingFullTextIndex(): boolean; getFullTextIndexExpression( indexName: string, schemaName: string | undefined, tableName: string, columns: SimpleColumnMeta[], ): string; normalizeColumnType( type: string, options: { length?: number; precision?: number; scale?: number; autoincrement?: boolean; }, ): string; getMappedType(type: string): Type; getRegExpOperator(val?: unknown, flags?: string): string; getRegExpValue(val: RegExp): { $re: string; $flags?: string; }; isBigIntProperty(prop: EntityProperty): boolean; getArrayDeclarationSQL(): string; getFloatDeclarationSQL(): string; getDoubleDeclarationSQL(): string; getEnumTypeDeclarationSQL(column: { fieldNames: string[]; items?: unknown[]; nativeEnumName?: string }): string; supportsMultipleStatements(): boolean; getBeginTransactionSQL(options?: { isolationLevel?: IsolationLevel; readOnly?: boolean }): string[]; marshallArray(values: string[]): string; unmarshallArray(value: string): string[]; getVarcharTypeDeclarationSQL(column: { length?: number }): string; getCharTypeDeclarationSQL(column: { length?: number }): string; getIntervalTypeDeclarationSQL(column: { length?: number }): string; getBlobDeclarationSQL(): string; getJsonDeclarationSQL(): string; getSearchJsonPropertyKey( path: string[], type: string | undefined | Type, aliased: boolean, value?: unknown, ): string | RawQueryFragment; getJsonIndexDefinition(index: IndexDef): string[]; quoteIdentifier( id: | string | { toString: () => string; }, quote?: string, ): string; private pad; /** @internal */ formatDate(date: Date): string; indexForeignKeys(): boolean; getDefaultMappedType(type: string): Type; supportsSchemas(): boolean; getDefaultSchemaName(): string | undefined; /** * Returns the default name of index for the given columns * cannot go past 63 character length for identifiers in MySQL */ getIndexName( tableName: string, columns: string[], type: 'index' | 'unique' | 'foreign' | 'primary' | 'sequence', ): string; getDefaultPrimaryName(tableName: string, columns: string[]): string; /** * @inheritDoc */ castColumn(prop?: { columnTypes?: string[] }): string; getJsonArrayFromSQL( column: string, alias: string, _properties: { name: string; type: string; }[], ): string; getJsonArrayElementPropertySQL(alias: string, property: string, type: string): string; getDefaultClientUrl(): string; }