export declare function normalizeQueryFilters(filters: Record<string, any>, defaults?: Partial<Record<'type' | 'category' | 'region' | 'area', string>>): Record<string, any>;
declare class FirestoreService {
    getDocuments(collection: string, id: string | null, dbId: string, timestamp?: string | null, intervalMinutes?: number | null, fields?: string[] | null): Promise<any>;
    createOrUpdateDocument(collection: string, id: string, data: Record<string, any>, dbId: string): Promise<{
        message: string;
    }>;
    updateDocument(collection: string, id: string, data: Record<string, any>, dbId: string): Promise<{
        message: string;
    }>;
    batchUpsertDocuments(collection: string, docs: Array<Record<string, any>>, dbId: string): Promise<{
        message: string;
    }>;
    getDocumentsByFields(collection: string, dbId: string, filters?: Record<string, any>, defaults?: Partial<Record<'type' | 'category' | 'region' | 'area', string>>): Promise<any[]>;
    /**
     * Delete documents from a collection using arbitrary field filters.
     * A collection and at least one filter are required to avoid mass deletions.
     * @param {string} dbId Firestore database ID
     * @param {string} collection Firestore collection name
     * @param {object} filters - key/value pairs to filter on
     * @returns {Promise<number>} - Number of deleted documents
     */
    deleteDocumentsByFields(dbId: string, collection: string, filters?: Record<string, any>): Promise<number>;
    /**
     * Delete documents older than the specified age in minutes.
     * Optionally filters by page field if provided.
     * @param {string} dbId Firestore database ID
     * @param {string} collection Firestore collection name
     * @param {number} maxAgeMinutes Age in minutes
     * @param {string} [page] Optional page filter
     * @returns {Promise<number>} Number of deleted documents
     */
    deleteStaleDocuments(dbId: string, collection: string, maxAgeMinutes: number, page?: string): Promise<number>;
    /**
     * Cleanup stale contents based on refresh rate from Remote Config.
     * @param {string} dbId Firestore database ID
     * @param {string} page Page name used for config parameter and filtering
     * @param {Function} [fetchConfig] optional injection for tests
     * @returns {Promise<number>} Number of deleted documents
     */
    cleanupStaleContents(dbId: string, collection: string, page?: string, fetchConfig?: (param: string) => Promise<string | null>): Promise<number>;
    deleteContents(dbId: string, collection: string, page: string): Promise<number>;
}
declare const firestoreService: FirestoreService;
export default firestoreService;
