import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import type { z } from "zod"; import type { facilityContactListQuerySchema, facilityFeatureListQuerySchema, facilityListQuerySchema, facilityOperationScheduleListQuerySchema, insertFacilityContactSchema, insertFacilityFeatureSchema, insertFacilityOperationScheduleSchema, insertFacilitySchema, insertPropertyGroupMemberSchema, insertPropertyGroupSchema, insertPropertySchema, propertyGroupListQuerySchema, propertyGroupMemberListQuerySchema, propertyListQuerySchema, updateFacilityContactSchema, updateFacilityFeatureSchema, updateFacilityOperationScheduleSchema, updateFacilitySchema, updatePropertyGroupMemberSchema, updatePropertyGroupSchema, updatePropertySchema } from "./validation.js"; export type FacilityListQuery = z.infer; export type CreateFacilityInput = z.infer; export type UpdateFacilityInput = z.infer; export type FacilityContactListQuery = z.infer; export type CreateFacilityContactInput = z.infer; export type UpdateFacilityContactInput = z.infer; export type FacilityFeatureListQuery = z.infer; export type CreateFacilityFeatureInput = z.infer; export type UpdateFacilityFeatureInput = z.infer; export type FacilityOperationScheduleListQuery = z.infer; export type CreateFacilityOperationScheduleInput = z.infer; export type UpdateFacilityOperationScheduleInput = z.infer; export type PropertyListQuery = z.infer; export type CreatePropertyInput = z.infer; export type UpdatePropertyInput = z.infer; export type PropertyGroupListQuery = z.infer; export type CreatePropertyGroupInput = z.infer; export type UpdatePropertyGroupInput = z.infer; export type PropertyGroupMemberListQuery = z.infer; export type CreatePropertyGroupMemberInput = z.infer; export type UpdatePropertyGroupMemberInput = z.infer; export declare const facilityEntityType = "facility"; export declare const facilityBaseIdentitySource = "facilities.base"; export declare const facilityContactIdentitySource = "facilities.contacts"; type FacilityAddressFields = { addressLine1: string | null; addressLine2: string | null; city: string | null; region: string | null; country: string | null; postalCode: string | null; latitude: number | null; longitude: number | null; address: string | null; }; export declare function paginate(rowsQuery: Promise, countQuery: Promise>, limit: number, offset: number): Promise>; export declare function formatAddress(address: { fullText: string | null; line1: string | null; line2: string | null; city: string | null; region: string | null; postalCode: string | null; country: string | null; }): string | null; export type FacilityAddressInput = Pick; export declare function ensureFacilityExists(db: PostgresJsDatabase, facilityId: string): Promise<{ id: string; } | null>; export declare function syncFacilityAddress(db: PostgresJsDatabase, facilityId: string, data: FacilityAddressInput): Promise; export declare function rebuildFacilityAddressProjection(db: PostgresJsDatabase, facilityId: string): Promise; export declare function hydrateFacilities(db: PostgresJsDatabase, rows: T[]): Promise<(T & FacilityAddressFields)[]>; export {};