import { AppCredentials } from "./conf";
import { StorageController } from "./controllers/StorageController";
import { AuthController } from "./controllers/AuthController";
import { CacheController } from "./controllers/CacheController";
import { BfastDatabase } from "./bfast.database";
import { BfastFunctions } from "./bfast.functions";
/**
 * Created and maintained by Fahamu Tech Ltd Company
 * @maintained Fahamu Tech ( fahamutechdevelopers@gmail.com )
 */
export declare class BFast {
    /**
     *
     * @param options
     * @param appName {string} application name for multiple apps access
     */
    static init(options: AppCredentials, appName?: string): void;
    /**
     * get configuration  of a specific app
     * @param appName
     */
    static getConfig(appName?: string): AppCredentials;
    /**
     *
     * @param appName other app/project name other than DEFAULT to work with
     * @return BfastDatabase - Controller for perming database operations
     */
    static database(appName?: string): BfastDatabase;
    /**
     *
     * @param appName other app/project name to work with
     */
    static functions(appName?: string): BfastFunctions;
    /**
     * get cache instance to work with when work in a browser
     * @param options
     * @param appName other app/project name to work with
     */
    static cache(options?: {
        database: string;
        collection: string;
    }, appName?: string): CacheController;
    /**
     * get auth instance to work with authentication and authorization
     * @param appName other app/project name to work with
     */
    static auth(appName?: string): AuthController;
    /**
     * utils and enums
     */
    static utils: {
        USER_DOMAIN_NAME: string;
        POLICY_DOMAIN_NAME: string;
        TOKEN_DOMAIN_NAME: string;
    };
    /**
     * access to storage instance from your bfast::database project
     * @param appName
     */
    static storage(appName?: string): StorageController;
}
export declare const bfast: typeof BFast;
