import { AbstractModel } from "../model/AbstractModel";
import { AbstractHttpController } from "../controller/http/AbstractHttpController";
import { AbstractDatabaseAdapter } from "../database/AbstractDatabaseAdapter";
import { ModelMetadata } from "../model/ModelMetadata";
import { HttpRequest } from "../controller/http/HttpRequest";
import { IQueryProvider } from "../model/IQueryProvider";
import { AbstractLogger } from "../logger/AbstractLogger";
import { HttpControllerMetadata } from "../controller/http/HttpControllerMetadata";
export declare class DefaultHttpResourceController<T extends AbstractModel> extends AbstractHttpController {
    private readonly NUMERIC_OPERATORS;
    protected databaseAdapter: AbstractDatabaseAdapter;
    protected logger: AbstractLogger;
    protected readonly model: new (...args: any[]) => T;
    protected readonly modelMetadata: ModelMetadata;
    private metadata;
    constructor(model: new (...args: any[]) => T);
    init(): Promise<void>;
    readonly controllerMetadata: HttpControllerMetadata;
    createResource(request: HttpRequest, transaction?: IQueryProvider): Promise<any>;
    getResource(request: HttpRequest, transaction?: IQueryProvider): Promise<T>;
    getAllResources(request: HttpRequest, transaction?: IQueryProvider): Promise<T[]>;
    updateResource(request: HttpRequest, transaction?: IQueryProvider): Promise<void>;
    deleteResource(request: HttpRequest, transaction?: IQueryProvider): Promise<void>;
}
//# sourceMappingURL=DefaultHttpResourceController.d.ts.map