import { AuthAdapter } from "./adapters/auth.adapter";
import { CacheAdapter } from "./adapters/cache.adapter";
import { HttpClientAdapter } from "./adapters/http-client.adapter";
export declare class BFastConfig {
    static DEFAULT_APP: string;
    DEFAULT_CACHE_DB_BFAST: string;
    DEFAULT_CACHE_COLLECTION_USER: string;
    DEFAULT_CACHE_COLLECTION_STORAGE: string;
    DEFAULT_CACHE_COLLECTION_REST: string;
    DEFAULT_CACHE_COLLECTION_CACHE: string;
    DEFAULT_CACHE_COLLECTION_TTL: string;
    private credentials;
    private constructor();
    private static instance;
    static getInstance(): BFastConfig;
    setCredential(config: AppCredentials, appName?: string): void;
    credential(appName?: string): AppCredentials;
    functionsURL(path: string, appName: string): string;
    databaseURL(appName: string, suffix?: string): string;
    cacheDatabaseName(name: string, appName: string): string;
    cacheCollectionName(name: string, appName: string): string;
}
export interface AppCredentials {
    applicationId: string;
    functionsURL?: string;
    projectId: string;
    databaseURL?: string;
    appPassword?: string;
    cache?: CacheConfigOptions;
    adapters?: {
        auth?: string | ((config?: BFastConfig) => AuthAdapter);
        cache?: string | ((config?: BFastConfig) => CacheAdapter);
        http?: string | ((config?: BFastConfig) => HttpClientAdapter);
    };
}
export interface CacheConfigOptions {
    enable: boolean;
    collection?: string;
    ttlCollection?: string;
}
