import { ReturnExpression } from "lambda-expression"; import { ValueTypeToParse } from "./core/utils"; import { DatabaseHelper } from "./database-helper"; import { FieldType } from "./core/enums/field-type"; import { PrimaryKeyType } from "./core/enums/primary-key-type"; import { GetMapper } from "./mapper/interface-get-mapper"; import { MetadataTableBase } from "./metadata-table-base"; import { WhereBuilder } from "./crud/where-builder"; import { DatabaseTypes } from "./definitions"; export declare class MetadataTable extends MetadataTableBase { private _databaseHelper; private _getMapper; readOnly: boolean; tableName: string; instance: T; private _autoMapperCalled; private _expressionUtils; constructor(_newable: new () => T, _databaseHelper: DatabaseHelper, _getMapper: GetMapper, readOnly?: boolean, tableName?: string); column(expression: ReturnExpression, type?: (new () => TReturn) | DatabaseTypes, primaryKeyType?: PrimaryKeyType): MetadataTable; hasQueryFilter(whereCallback: (where: WhereBuilder) => void): MetadataTable; hasMany(expression: ReturnExpression, type: new () => TArray, tableName: string): MetadataTable; referenceKey(expression: ReturnExpression, expressionKey: ReturnExpression, type?: new () => TReturn): MetadataTable; reference(expression: ReturnExpression, type?: new () => TReturn): MetadataTable; key(expression: ReturnExpression, primaryKeyType?: PrimaryKeyType, type?: new () => TReturn): MetadataTable; ignore(expression: ReturnExpression): MetadataTable; autoMapper(references?: boolean, referencesId?: boolean, referencesIdRecursive?: boolean): MetadataTable; protected getTypeByValue(value: ValueTypeToParse): FieldType; private validInstanceMapper; private validExpressionMapper; private columnName; private getTypeByExpression; private getMapper; private isKeyColumn; private autoMapperColumns; private addReference; private mapperReference; private getMapperColumnReference; private autoColumnsModelReferencesRecursive; private addDependencyArray; }