import firebase from '@firebase/app';
import '@firebase/logger';
import '@firebase/util';
import '@firebase/webchannel-wrapper';
import { K as Ku, t as ta, W, B as Bu, G as Gu, z as zu, J as Ju, a as th, n as nh, e as eh, i as ih, r as rh, c as ch, b as ah, j as ju, X as Xa, Z as Za, Q as Qu } from './prebuilt-11c12812.js';
import { Component } from '@firebase/component';

const name = "@firebase/firestore";
const version = "2.1.5-202112213818";

/**
 * @license
 * Copyright 2017 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
const firestoreNamespace = {
    Firestore: Ku,
    GeoPoint: ta,
    Timestamp: W,
    Blob: Bu,
    Transaction: Gu,
    WriteBatch: zu,
    DocumentReference: Ju,
    DocumentSnapshot: th,
    Query: nh,
    QueryDocumentSnapshot: eh,
    QuerySnapshot: ih,
    CollectionReference: rh,
    FieldPath: ch,
    FieldValue: ah,
    setLogLevel: ju,
    CACHE_SIZE_UNLIMITED: Xa
};
/**
 * Configures Firestore as part of the Firebase SDK by calling registerService.
 *
 * @param firebase - The FirebaseNamespace to register Firestore with
 * @param firestoreFactory - A factory function that returns a new Firestore
 *    instance.
 */
function configureForFirebase(firebase, firestoreFactory) {
    firebase.INTERNAL.registerComponent(new Component('firestore', container => {
        const app = container.getProvider('app').getImmediate();
        return firestoreFactory(app, container.getProvider('auth-internal'));
    }, "PUBLIC" /* PUBLIC */).setServiceProps(Object.assign({}, firestoreNamespace)));
}

/**
 * @license
 * Copyright 2017 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Registers the main Firestore build with the components framework.
 * Persistence can be enabled via `firebase.firestore().enablePersistence()`.
 */
function registerFirestore(instance) {
    configureForFirebase(instance, (app, auth) => new Ku(app, new Za(app, auth), new Qu()));
    instance.registerVersion(name, version);
}
registerFirestore(firebase);

export { registerFirestore };
//# sourceMappingURL=index.js.map
