/// import * as Sequelize from 'sequelize'; import { Spec, SpecType } from 'pretur.spec'; import { Resolver, UnitializedResolver } from './resolver'; import { Synchronizer, UnitializedSynchronizer } from './synchronizer'; import { UninitializedSequelizeModel, SequelizeModel } from './sequelizeModel'; import { Pool } from './pool'; export declare type FieldWhereClause = F | Sequelize.WhereOptions | Sequelize.WhereOptions | Sequelize.col | Sequelize.and | Sequelize.or | Sequelize.WhereGeometryOptions | F[] | object; export declare type AliasModelMap = { [P in keyof T['records'] | keyof T['sets']]: string; }; export declare type AliasKeyMap = { [P in keyof T['records'] | keyof T['sets']]: keyof T['fields']; }; export declare type FieldWhereBuilders = { [P in keyof T['fields']]?: (value: T['fields'][P]) => FieldWhereClause; }; export interface ModelDescriptor { spec: Spec; name: string; primaryKeys: (keyof T['fields'])[]; sequelizeModel?: SequelizeModel; resolver?: Resolver; synchronizer?: Synchronizer; aliasModelMap: AliasModelMap; aliasKeyMap: AliasKeyMap; allowedAttributes: (keyof T['fields'])[]; mutableAttributes: (keyof T['fields'])[]; defaultOrder: [keyof T['fields'], 'ASC' | 'DESC']; fieldWhereBuilders?: FieldWhereBuilders; sanitizeAttributes(attributes?: (keyof T['fields'])[] | keyof T['fields']): (keyof T['fields'])[]; initialize(pool: Pool): void; } export interface BuildModelDescriptorOptions { sequelizeModel?: UninitializedSequelizeModel; resolver?: UnitializedResolver; synchronizer?: UnitializedSynchronizer; defaultOrder?: [keyof T['fields'], 'ASC' | 'DESC']; fieldWhereBuilders?: FieldWhereBuilders; allowedAttributes?: (keyof T['fields'])[]; allowedMutableAttributes?: (keyof T['fields'])[]; } export declare function buildModelDescriptor(spec: Spec, options?: BuildModelDescriptorOptions): ModelDescriptor;