import { InitOptions, Model as OriginModel, ModelAttributes, FindOptions, BuildOptions } from 'sequelize'; import { AssociationGetOptions } from './association/association-get-options'; import { AssociationCountOptions } from './association/association-count-options'; import { AssociationActionOptions } from './association/association-action-options'; import { AssociationCreateOptions } from './association/association-create-options'; import { Repository } from '../../sequelize/repository/repository'; export declare type ModelType = new (values?: TCreationAttributes, options?: any) => Model; export declare type ModelCtor = Repository; export declare type ModelStatic = { new (): M; }; export declare type $GetType = NonNullable extends any[] ? NonNullable : NonNullable | null; export declare abstract class Model extends OriginModel { id?: number | any; createdAt?: Date | any; updatedAt?: Date | any; deletedAt?: Date | any; version?: number | any; static isInitialized: boolean; static initialize, M extends InstanceType>(attributes: ModelAttributes, options: InitOptions): MS; constructor(values?: TCreationAttributes, options?: BuildOptions); /** * Adds relation between specified instances and source instance */ $add(propertyKey: string, instances: R | R[] | string[] | string | number[] | number, options?: AssociationActionOptions): Promise; /** * Sets relation between specified instances and source instance * (replaces old relations) */ $set(propertyKey: keyof this, instances: R | R[] | string[] | string | number[] | number | null, options?: AssociationActionOptions): Promise; /** * Returns related instance (specified by propertyKey) of source instance */ $get(propertyKey: K, options?: AssociationGetOptions): Promise<$GetType>; /** * Counts related instances (specified by propertyKey) of source instance */ $count(propertyKey: string, options?: AssociationCountOptions): Promise; /** * Creates instances and relate them to source instance */ $create(propertyKey: string, values: any, options?: AssociationCreateOptions): Promise; /** * Checks if specified instances is related to source instance */ $has(propertyKey: string, instances: R | R[] | string[] | string | number[] | number, options?: AssociationGetOptions): Promise; /** * Removes specified instances from source instance */ $remove(propertyKey: string, instances: R | R[] | string[] | string | number[] | number, options?: any): Promise; reload(options?: FindOptions): Promise; } /** * Indicates which static methods of Model has to be proxied, * to prepare include option to automatically resolve alias; * The index represents the index of the options of the * corresponding method parameter */ export declare const INFER_ALIAS_MAP: { bulkBuild: number; build: number; create: number; aggregate: number; all: number; find: number; findAll: number; findAndCount: number; findAndCountAll: number; findById: number; findByPrimary: number; findCreateFind: number; findOne: number; findOrBuild: number; findOrCreate: number; findOrInitialize: number; reload: number; };