import { type MockItem, type MockItemSubItemDeep, type MockItemSubItemDeepDocument, type MockItemSubItemDeepFirestoreCollectionFactory, type MockItemSubItemDeepFirestoreCollectionGroup, type MockItemSubItemDeepRoles, type MockItemDocument, type MockItemFirestoreCollection, type MockItemPrivate, type MockItemPrivateDocument, type MockItemPrivateFirestoreCollectionFactory, type MockItemPrivateFirestoreCollectionGroup, type MockItemPrivateRoles, type MockItemRoles, type MockItemSubItem, type MockItemSubItemDocument, type MockItemSubItemFirestoreCollectionFactory, type MockItemSubItemFirestoreCollectionGroup, type MockItemSubItemRoles, type MockItemTypes, type MockItemUser, type MockItemUserDocument, type MockItemUserFirestoreCollectionFactory, type MockItemUserFirestoreCollectionGroup, type MockItemUserRoles } from './mock.item'; import { type FirebaseAppModelContext, type FirestoreContext, type SystemStateFirestoreCollection, type SystemState, type SystemStateDocument, type SystemStateTypes } from '@dereekb/firebase'; import { type GrantedRoleMap } from '@dereekb/model'; /** * Abstract class defining the shape of all mock item Firestore collections. * * Implementations provide concrete collection instances for each mock model type, * including root collections, subcollection factories, and collection groups. * Use {@link makeMockItemCollections} to create a concrete instance from a {@link FirestoreContext}. */ export declare abstract class MockItemCollections { abstract readonly mockItemCollection: MockItemFirestoreCollection; abstract readonly mockItemPrivateCollectionFactory: MockItemPrivateFirestoreCollectionFactory; abstract readonly mockItemPrivateCollectionGroup: MockItemPrivateFirestoreCollectionGroup; abstract readonly mockItemUserCollectionFactory: MockItemUserFirestoreCollectionFactory; abstract readonly mockItemUserCollectionGroup: MockItemUserFirestoreCollectionGroup; abstract readonly mockItemSubItemCollectionFactory: MockItemSubItemFirestoreCollectionFactory; abstract readonly mockItemSubItemCollectionGroup: MockItemSubItemFirestoreCollectionGroup; abstract readonly mockItemSubItemDeepCollectionFactory: MockItemSubItemDeepFirestoreCollectionFactory; abstract readonly mockItemSubItemDeepCollectionGroup: MockItemSubItemDeepFirestoreCollectionGroup; abstract readonly mockItemSystemStateCollection: SystemStateFirestoreCollection; } /** * Creates a concrete {@link MockItemCollections} instance with all collections bound to the given {@link FirestoreContext}. * * This is the primary way to instantiate the full set of mock collections for a test run. */ export declare function makeMockItemCollections(firestoreContext: FirestoreContext): MockItemCollections; /** * Model service factory for {@link MockItem}. Returns configurable roles from `context.rolesToReturn`, defaulting to `{ read: true }`. */ export declare const mockItemFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory; /** * Model service factory for {@link MockItemPrivate}. Returns configurable roles from `context.rolesToReturn`, defaulting to `{ read: true }`. */ export declare const mockItemPrivateFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory; /** * Model service factory for {@link MockItemUser}. Grants read access if the authenticated user owns the document; * otherwise uses `context.rolesToReturn`. */ export declare const mockItemUserFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory; /** * Model service factory for {@link MockItemSubItem}. Returns configurable roles from `context.rolesToReturn`, defaulting to `{ read: true }`. */ export declare const mockItemSubItemFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory; /** * Model service factory for {@link MockItemSubItemDeep}. Returns configurable roles from `context.rolesToReturn`, defaulting to `{ read: true }`. */ export declare const mockItemSubItemDeepFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory; /** * Model service factory for {@link SystemState}. Only grants access to system admins via {@link grantFullAccessIfAdmin}. */ export declare const mockItemSystemStateFirebaseModelServiceFactory: import("@dereekb/firebase").FirebaseModelServiceFactory, SystemStateDocument, "sysadmin">; /** * Union of all model identity types used in the mock Firebase service layer, including system state. */ export type MockModelTypes = SystemStateTypes | MockItemTypes; /** * The application context type for mock Firebase models. Provides access to all mock collections. */ export type MockFirebaseContextAppContext = MockItemCollections; /** * Base context for mock Firebase model operations. * * Combines the standard {@link FirebaseAppModelContext} (which provides `app` and `auth`) * with an optional `rolesToReturn` override used by mock role-map functions to return * predetermined roles in tests. */ export type MockFirebaseBaseContext = FirebaseAppModelContext & { /** * Configured in the context and in mockItem role map functions to return this value if provided. */ rolesToReturn?: GrantedRoleMap; }; /** * Registry of all mock model service factories, keyed by model name. * * Passed to {@link firebaseModelsService} to create the composite {@link mockFirebaseModelServices}. */ export declare const MOCK_FIREBASE_MODEL_SERVICE_FACTORIES: { systemState: import("@dereekb/firebase").FirebaseModelServiceFactory, SystemStateDocument, "sysadmin">; mockItem: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemPrivate: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemUser: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemSub: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemSubItemDeep: import("@dereekb/firebase").FirebaseModelServiceFactory; }; /** * Composite model service built from {@link MOCK_FIREBASE_MODEL_SERVICE_FACTORIES}. * * Provides permission checking and collection access for all mock models in a unified API. */ export declare const mockFirebaseModelServices: import("@dereekb/firebase").FirebaseModelsService<{ systemState: import("@dereekb/firebase").FirebaseModelServiceFactory, SystemStateDocument, "sysadmin">; mockItem: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemPrivate: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemUser: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemSub: import("@dereekb/firebase").FirebaseModelServiceFactory; mockItemSubItemDeep: import("@dereekb/firebase").FirebaseModelServiceFactory; }, MockFirebaseContext>; /** * Full mock Firebase context type used throughout the test suite. * * Extends {@link MockFirebaseBaseContext} with an optional reference to the composite * {@link mockFirebaseModelServices} instance. */ export type MockFirebaseContext = MockFirebaseBaseContext & { service?: typeof mockFirebaseModelServices; };