import { TimeSpan } from "../Data/TimeSpan"; import { Uuid } from "../Data/Uuid"; export interface IObjectType { name?: string; new (...values: any[]): T; } export interface IEnumType { [key: string]: T; } export declare const NullConstructor: () => null; export declare type Pivot ValueType; }, TM extends { [key: string]: (item: T[]) => ValueType; }> = { [key in keyof TD]: ReturnType; } & { [key in keyof TM]: ReturnType; }; export declare type GenericType = IObjectType | ((...value: any[]) => T); export declare type ObjectLike = { [key in keyof T]?: T[key]; }; export declare type FlatObjectLike = { [key in keyof T]?: T[key] & ValueType; }; export declare type PropertySelector = keyof TE | ((source: TE) => ValueType); export declare type ValueType = number | string | boolean | Date | TimeSpan | Uuid | ArrayBufferView; export declare type DbType = "sqlite" | "mssql" | "postgresql" | "mysql"; export declare type RelationshipType = "one" | "many"; export declare type CompleteRelationshipType = "one-one" | "one-many" | "many-one" | "many-many"; export declare const ClassBase: any; export declare enum DateTimeKind { UTC = 0, Unspecified = 1, Custom = 2 } export declare enum InheritanceType { TablePerClass = 0, SingleTable = 1, TablePerConcreteClass = 2, None = 3 } export declare type OrderDirection = "ASC" | "DESC"; export declare type TimeZoneHandling = "none" | "utc"; export declare type JoinType = "INNER" | "FULL" | "RIGHT" | "LEFT" | "CROSS"; export declare type ReferenceOption = "NO ACTION" | "RESTRICT" | "CASCADE" | "SET NULL" | "SET DEFAULT"; export declare type IsolationLevel = "READ UNCOMMITTED" | "READ COMMITTED" | "REPEATABLE READ" | "SERIALIZABLE" | "SNAPSHOT"; export declare type ConcurrencyModel = "NONE" | "PESSIMISTIC" | "OPTIMISTIC DIRTY" | "OPTIMISTIC VERSION"; export declare type LockMode = "READ" | "WRITE" | "UPGRADE" | "NONE"; export declare enum EventListenerType { /** * Run after entity completely loaded from database. */ AFTER_GET = "after-get", /** * Run before insert or update. */ BEFORE_SAVE = "before-save", /** * Run after insert or update success. */ AFTER_SAVE = "after-save", /** * Run before soft delete or hard delete. */ BEFORE_DELETE = "before-delete", /** * Run after soft delete or hard delete success. */ AFTER_DELETE = "after-delete" } export declare enum QueryType { Unknown = 0, /** * Data Query Language */ DQL = 1, /** * Data Manipulation Language */ DML = 2, /** * Data Definition Language */ DDL = 4, /** * Data Transaction Language */ DTL = 8, /** * Data Control Language */ DCL = 16 } export declare enum ColumnGeneration { None = 0, Insert = 1, Update = 2 } export declare type DeleteMode = "soft" | "hard";