import { QueryController, RequestOptions } from "./query.controller";
import { RulesController } from "./rules.controller";
import { SocketController } from "./socket.controller";
import { DatabaseChangesModel } from "../models/DatabaseChangesModel";
import { HttpClientController } from "./http-client.controller";
import { AuthController } from "./auth.controller";
export declare class DatabaseController {
    private readonly domainName;
    private readonly httpClientController;
    private readonly rulesController;
    private readonly authController;
    private readonly appName;
    constructor(domainName: string, httpClientController: HttpClientController, rulesController: RulesController, authController: AuthController, appName: string);
    save<T>(model: T | T[], options?: RequestOptions): Promise<T>;
    getAll<T>(pagination?: {
        size: number;
        skip: number;
    }, options?: RequestOptions): Promise<T[]>;
    get<T>(id: string, options?: RequestOptions): Promise<T>;
    query(): QueryController;
    static _extractResultFromServer(data: any, rule: string, domain: string): any;
    static _getErrorMessage(e: any): any;
}
export declare class DatabaseChangesController {
    private socketController;
    constructor(socketController: SocketController);
    addListener(handler: (response: {
        body: DatabaseChangesModel;
    }) => any): void;
    close(): void;
    open(): void;
}
