import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import { AngularFirestore } from 'angularfire2/firestore';
export declare class ExtendedAngularFirestore {
    private afs;
    constructor(afs: AngularFirestore);
    documentExists<T>(ref: string): Promise<boolean>;
    private documentExistsObs<T>(ref);
    createNewDocument<T>(ref: string, document: T): Promise<void>;
    updateExistingDocument<T>(ref: string, document: T): Promise<void>;
    upsert<T>(ref: string, document: T): Promise<void>;
    deleteDocument<T>(ref: string): Promise<void>;
    downloadDocument<T>(ref: string): Promise<T>;
    listenForChangesToDocument<T>(ref: string): Observable<T>;
    downloadCollection<T>(ref: string): Promise<Array<T>>;
    listenForChangesToCollection<T>(ref: string): Observable<Array<T>>;
}
