import { DatabaseController } from "./controllers/database.controller";
import { HttpClientController } from "./controllers/http-client.controller";
import { AuthController } from "./controllers/auth.controller";
import { RulesController } from "./controllers/rules.controller";
import { BulkController } from "./controllers/bulk.controller";
export declare class BfastDatabase {
    private readonly appName;
    private readonly httpClientController;
    private readonly rulesController;
    private readonly authController;
    constructor(appName: string, httpClientController: HttpClientController, rulesController: RulesController, authController: AuthController);
    /**
     * a domain/table/collection to deal with
     * @param domainName {string} domain name
     * @return {DatabaseController}
     */
    domain<T>(domainName: string): DatabaseController;
    /**
     * same as #domain
     * @return {DatabaseController}
     */
    collection<T>(collectionName: string): DatabaseController;
    /**
     * same as #domain
     * @return {DatabaseController}
     */
    table<T>(tableName: string): DatabaseController;
    /**
     * perform bulk to remote database
     * @return {BulkController}
     */
    bulk(): BulkController;
}
