import { IApiBaseEntity } from '../../../../api-base-entity.interface';
import { IApiGetListResponseResult } from '../../../../decorator/api';
import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateCriteria, TApiFunctionUpdateProperties } from '../../../../../type/decorator/api/function';
import { Repository } from 'typeorm';
export interface IApiFunctionContextOperations<E extends IApiBaseEntity> {
    create: (properties: TApiFunctionCreateProperties<E>) => Promise<E>;
    delete: (criteria: Array<TApiFunctionDeleteCriteria<E>> | TApiFunctionDeleteCriteria<E>) => Promise<void>;
    get: (properties: TApiFunctionGetProperties<E>) => Promise<E>;
    getList: (properties: TApiFunctionGetListProperties<E>) => Promise<IApiGetListResponseResult<E>>;
    getMany: (properties: TApiFunctionGetManyProperties<E>) => Promise<Array<E>>;
    getRepository: <T extends IApiBaseEntity>(entity: new () => T) => Repository<T>;
    update: (criteria: Array<TApiFunctionUpdateCriteria<E>> | TApiFunctionUpdateCriteria<E>, properties: TApiFunctionUpdateProperties<E>) => Promise<E>;
}
