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; getEnumArrayCheckConstraintExpression(column: string, items: string[]): string; 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; }