import { IApiBaseEntity } from '../../interface/api-base-entity.interface';
import { IApiFunctionContext, IApiFunctionStepContext } from '../../interface/class/api/function';
import { IApiGetListResponseResult } from '../../interface/decorator/api';
import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateCriteria, TApiFunctionUpdateProperties } from '../../type/decorator/api/function';
/**
 * Base class for services providing CRUD operations.
 * @see {@link https://elsikora.com/docs/nestjs-crud-automator/api-reference/classes#apiservicebase | API Reference - ApiServiceBase}
 * @see {@link https://elsikora.com/docs/nestjs-crud-automator/core-concepts/services | Core Concepts - Services}
 */
export declare class ApiServiceBase<E> {
    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>>;
    update(criteria: Array<TApiFunctionUpdateCriteria<E>> | TApiFunctionUpdateCriteria<E>, properties: TApiFunctionUpdateProperties<E>): Promise<E>;
    protected getApiFunctionContext<T extends IApiBaseEntity>(): IApiFunctionContext<T>;
    protected getApiFunctionStepContext<T extends IApiBaseEntity>(): IApiFunctionStepContext<T>;
}
