import type { Pool } from 'postgres-pool'; import type { Entity, EntityStatic } from './Entity'; import type { IReadonlyRepository } from './IReadonlyRepository'; import type { IRepository } from './IRepository'; import { ModelMetadata } from './metadata'; import { ReadonlyRepository } from './ReadonlyRepository'; import { Repository } from './Repository'; export * from './decorators'; export * from './Entity'; export * from './IReadonlyRepository'; export * from './IRepository'; export * from './metadata'; export * from './ReadonlyRepository'; export * from './Repository'; export * from './types'; export interface IConnection { pool: Pool; readonlyPool?: Pool; } export interface InitializeOptions extends IConnection { models: EntityStatic[]; connections?: Record; expose?: (repository: ReadonlyRepository | Repository, tableMetadata: ModelMetadata) => void; } /** * Initializes BigAl * @param {object[]} models - Model classes - used to force decorator evaluation for all models * @param {object[]} modelSchemas - Model definitions * @param {object} pool - Postgres Pool * @param {object} [readonlyPool] - Postgres Pool for `find` and `findOne` operations. If not defined, `pool` will be used * @param {object} [connections] - Key: name of the connection; Value: { pool, readonlyPool } * @param {Function} [expose] - Used to expose model classes * @returns {object} Repositories by model name */ export declare function initialize({ models, pool, readonlyPool, connections, expose }: InitializeOptions): Record | IRepository>;