import * as utils from '@prismamedia/graphql-platform-utils'; import type { ForeignKey, FullTextIndex, LeafColumn, PlainIndex, ReferenceColumn, Table, UniqueIndex } from './table.js'; /** * @see https://mariadb.com/kb/en/identifier-names/ */ export type IdentifierName = string; export declare function assertIdentifierName(maybeIdentifierName: unknown, path?: utils.Path): asserts maybeIdentifierName is IdentifierName; export declare function ensureIdentifierName(maybeIdentifierName: unknown, path?: utils.Path): IdentifierName; export interface SchemaNamingStrategyConfig { table?: (table: Table) => utils.Nillable; leaf?: (column: LeafColumn) => utils.Nillable; reference?: (column: ReferenceColumn) => utils.Nillable; foreignKey?: (index: ForeignKey) => utils.Nillable; uniqueIndex?: (index: UniqueIndex) => utils.Nillable; plainIndex?: (index: PlainIndex) => utils.Nillable; fullTextIndex?: (index: FullTextIndex) => utils.Nillable; } export declare class SchemaNamingStrategy { readonly config?: SchemaNamingStrategyConfig | undefined; readonly configPath?: utils.Path | undefined; constructor(config?: SchemaNamingStrategyConfig | undefined, configPath?: utils.Path | undefined); getTableName(table: Table): Table['name']; getLeafColumnName(column: LeafColumn): LeafColumn['name']; getReferenceColumnName(column: ReferenceColumn): ReferenceColumn['name']; getForeignKeyName(index: ForeignKey): ForeignKey['name']; getUniqueIndexName(index: UniqueIndex): UniqueIndex['name']; getPlainIndexName(index: PlainIndex): PlainIndex['name']; getFullTextIndexName(index: FullTextIndex): FullTextIndex['name']; } //# sourceMappingURL=naming-strategy.d.ts.map