import type { AttributeType, ColumnType, CollectionType, TableType } from "../../commands/config.js"; export type Attribute = AttributeType | ColumnType; export type Collection = (CollectionType | TableType) & { attributes: Attribute[]; }; export type EnumMember = { key: string; value: string; }; export type EnumDefinition = { name: string; members: EnumMember[]; }; export declare abstract class LanguageMeta { constructor(); static toKebabCase(string: string): string; static toSnakeCase(string: string): string; static toUpperSnakeCase(string: string): string; static sanitizeEnumKey(value: string): string; static toCamelCase(string: string): string; static toPascalCase(string: string): string; static getRelatedCollectionId(attribute: Attribute): string | undefined; static getRelatedCollection(attribute: Attribute, collections?: Collection[]): Collection; /** * Get the type literal of the given attribute. */ abstract getType(attribute: Attribute, collections?: Collection[], collectionName?: string): string; generateEnum(_entityName: string, _attributeKey: string, _elements: string[]): EnumDefinition; /** * Returns true if the language uses a single file for all types. */ isSingleFile(): boolean; /** * Get the EJS template used to generate the types for this language. */ abstract getTemplate(): string; /** * Get the file extension used by files of this language. */ abstract getFileName(collection?: Collection): string; } export declare function detectLanguage(): string; //# sourceMappingURL=language.d.ts.map