import { Firestore } from 'firebase/firestore';
import { User } from '../authentication/User';
import { Feedback } from './Feedback';
/**
 * ApphouseFirestore
 * A wrapper around firebase firestore to fetch, set, update and delete data from firestore
 * It assumes that initializeApp(firebaseConfig) has already been called
 */
export declare class ApphouseFirestore<T extends string> {
    db?: Firestore;
    user?: User;
    feedback?: Feedback;
    /**
     * If true, then no error message will be shown as an alert
     * @default true
     */
    silentError: boolean;
    constructor(user: User, feedback?: Feedback);
    setDb(db: Firestore): void;
    /**
     * Set silent error to true to not show error message as an alert
     * @param silentError if true, then no error message will be shown as an alert
     */
    setSilentError(silentError: boolean): void;
    fetch: (collectionName: string, docName?: string, orderByField?: string) => Promise<import("@firebase/firestore").DocumentData | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | undefined>;
    setWithoutCredentials: (collectionName: T, dcmt: string, data: object) => Promise<void> | {
        error: string;
    } | undefined;
    set: (collectionName: T, dcmt: string, data: object) => Promise<void> | {
        error: string;
    } | undefined;
    update: (collectionName: T, dcmt: string, data: any) => Promise<void> | {
        error: string;
    } | undefined;
}
