import { Repository as TypeormRepository } from 'typeorm'; import { Type, Injector, EntityService } from '@notadd/core'; import { FindOneOptions, FindManyOptions, SaveOptions, DeleteResult, ObjectID, InsertResult, RemoveOptions, EntityManager, UpdateResult, QueryRunner, EntityMetadata, SelectQueryBuilder, DeepPartial, FindConditions } from 'typeorm'; import { QueryDeepPartialEntity } from 'typeorm/query-builder/QueryPartialEntity'; import { Table, ColumnDefinition, QueryLike, Query, Executable } from './sql-helper'; import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata'; export declare function createColumn(column: ColumnMetadata): ColumnDefinition; export declare function createColumns(columns: ColumnMetadata[]): any; export declare function createTable(metadata: EntityMetadata): Table; export declare function isExecutable(val: any): val is Executable; export declare class Repository implements TypeormRepository { repository: TypeormRepository; injector: Injector; entity: Type; manager: EntityManager; metadata: EntityMetadata; queryRunner?: QueryRunner; entityService: EntityService; get table(): Table; constructor(repository: TypeormRepository, injector: Injector, entity: Type); createQueryBuilder(alias?: string | undefined, queryRunner?: QueryRunner): SelectQueryBuilder; get target(): Type; sql(sqlLike: QueryLike | Query): Promise; hasId(entity: Entity): boolean; getId(entity: Entity): any; create(): Entity; create(entityLikeArray: DeepPartial[]): Entity[]; create(entityLike: DeepPartial): Entity; createAsync(): Promise; createAsync(entityLikeArray: DeepPartial[]): Promise; createAsync(entityLike: DeepPartial): Promise; merge(mergeIntoEntity: Entity, ...entityLikes: DeepPartial[]): Entity; preload(entityLike: DeepPartial): Promise; save>(entities: T[], options: SaveOptions & { reload: false; }): Promise; save>(entities: T[], options?: SaveOptions | undefined): Promise<(T & Entity)[]>; save>(entity: T, options: SaveOptions & { reload: false; }): Promise; save>(entity: T, options?: SaveOptions | undefined): Promise; remove(entities: Entity[], options?: RemoveOptions | undefined): Promise; remove(entity: Entity, options?: RemoveOptions | undefined): Promise; softRemove>(entities: T[], options: SaveOptions & { reload: false; }): Promise; softRemove>(entities: T[], options?: SaveOptions | undefined): Promise<(T & Entity)[]>; softRemove>(entity: T, options: SaveOptions & { reload: false; }): Promise; softRemove>(entity: T, options?: SaveOptions | undefined): Promise; recover>(entities: T[], options: SaveOptions & { reload: false; }): Promise; recover>(entities: T[], options?: SaveOptions | undefined): Promise<(T & Entity)[]>; recover>(entity: T, options: SaveOptions & { reload: false; }): Promise; recover>(entity: T, options?: SaveOptions | undefined): Promise; insert(entity: QueryDeepPartialEntity | QueryDeepPartialEntity[]): Promise; update(criteria: string | number | string[] | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions, partialEntity: QueryDeepPartialEntity): Promise; delete(criteria: string | number | string[] | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions): Promise; softDelete(criteria: string | number | string[] | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions): Promise; restore(criteria: string | number | string[] | number[] | Date | Date[] | ObjectID | ObjectID[] | FindConditions): Promise; count(options?: FindManyOptions | undefined): Promise; count(conditions?: FindConditions | undefined): Promise; find(options?: FindManyOptions | undefined): Promise; find(conditions?: FindConditions | undefined): Promise; findAndCount(options?: FindManyOptions | undefined): Promise<[Entity[], number]>; findAndCount(conditions?: FindConditions | undefined): Promise<[Entity[], number]>; findByIds(ids: any[], options?: FindManyOptions | undefined): Promise; findByIds(ids: any[], conditions?: FindConditions | undefined): Promise; findOne(id?: string | number | Date | ObjectID | undefined, options?: FindOneOptions | undefined): Promise; findOne(options?: FindOneOptions | undefined): Promise; findOne(conditions?: FindConditions | undefined, options?: FindOneOptions | undefined): Promise; findOneOrFail(id?: string | number | Date | ObjectID | undefined, options?: FindOneOptions | undefined): Promise; findOneOrFail(options?: FindOneOptions | undefined): Promise; findOneOrFail(conditions?: FindConditions | undefined, options?: FindOneOptions | undefined): Promise; query(query: string, parameters?: any[] | undefined): Promise; clear(): Promise; increment(conditions: FindConditions, propertyPath: string, value: string | number): Promise; decrement(conditions: FindConditions, propertyPath: string, value: string | number): Promise; } export declare function createRepository(entity: Type, injector: Injector): Repository;