import { DateTime, Effect } from "effect"; import { type MediaType } from "./schema/mediaSchema.js"; import type { RoomsType } from "./schema/roomsSchema.js"; type UnknownRecord = Record; type ResourceWithMedia = UnknownRecord & { readonly Media?: unknown; }; type PropertyWithNestedResources = ResourceWithMedia & { readonly ListingKey?: string | null; readonly Rooms?: unknown; }; export declare const getPropertyRooms: (property: PropertyWithNestedResources) => RoomsType; export declare const getPropertyMedia: (property: ResourceWithMedia) => MediaType; export declare const getMemberMedia: (member: ResourceWithMedia) => Effect.Effect; export declare const getOfficeMedia: (office: ResourceWithMedia) => Effect.Effect; export declare const normalizePropertyRooms: (property: PropertyWithNestedResources) => Effect.Effect<{ RoomKey: string | null; ListingId: string | null; ModificationTimestamp: DateTime.Utc; RoomDescription: string | null; RoomDimensions: string | null; RoomLength: number | null; RoomLevel: "Above" | "Additional Accommodation" | "Auxiliary Building" | "Basement" | "Fifth level" | "Flat" | "Fourth level" | "Ground level" | "In between" | "Loft" | "Lower level" | "Main level" | "Other" | "Second level" | "Secondary Dwelling Unit" | "Sixth Level" | "Sub-basement" | "Third level" | "Unknown" | "Upper Level" | null; RoomWidth: number | null; RoomLengthWidthUnits: "feet" | "meters" | null; RoomType: "1pc Bathroom" | "1pc Ensuite bath" | "2pc Bathroom" | "2pc Ensuite bath" | "3pc Bathroom" | "3pc Ensuite bath" | "4pc Bathroom" | "4pc Ensuite bath" | "5pc Bathroom" | "5pc Ensuite bath" | "6pc Bathroom" | "6pc Ensuite bath" | "Addition" | "Additional bedroom" | "Atrium" | "Attic" | "Attic (finished)" | "Balcony" | "Bath (# pieces 1-6)" | "Bathroom" | "Bedroom" | "Bedroom - Bachelor" | "Bedroom 2" | "Bedroom 3" | "Bedroom 4" | "Bedroom 5" | "Bedroom 6" | "Beverage room" | "Bonus Room" | "Breakfast" | "Cold room" | "Computer Room" | "Conservatory" | "Den" | "Dinette" | "Dining nook" | "Dining room" | "Eat in kitchen" | "Eating area" | "Enclosed porch" | "Ensuite" | "Ensuite (# pieces 2-6)" | "Entrance" | "Exercise room" | "Family bathroom" | "Family room" | "Family room/Fireplace" | "Flat" | "Flex Space" | "Florida room" | "Florida/Fireplace" | "Foyer" | "Fruit cellar" | "Full bathroom" | "Full ensuite bathroom" | "Furnace" | "Games room" | "Great room" | "Guest suite" | "Gym" | "Hall" | "Hobby room" | "In-law suite" | "Indoor Pool Room" | "Inlaw suite" | "Jacuzzi" | "Kitchen" | "Kitchen/Dining room" | "Laundry / Bath" | "Laundry room" | "Library" | "Living room" | "Living room/Dining room" | "Living room/Fireplace" | "Lobby" | "Loft" | "Lunchroom" | "Media" | "Mezzanine" | "Mud room" | "Multi-use room" | "Music" | "Muskoka Room" | "Not known" | "Nursery" | "Office" | "Other" | "Pantry" | "Partial bathroom" | "Partial ensuite bathroom" | "Party room" | "Patio" | "Photography-dark room" | "Playroom" | "Porch" | "Primary Bedroom" | "Recreation room" | "Recreational, Games room" | "Rental unit" | "Roughed-In Bathroom" | "Sauna" | "Second Kitchen" | "Sitting room" | "Solarium" | "Steam room" | "Storage" | "Studio" | "Study" | "Sunroom" | "Sunroom/Fireplace" | "Unfinished Room" | "Utility room" | "Walk Up Attic" | "Wine Cellar" | "Workshop" | null; ListingKey: string | null; }[], never, never>; export declare const normalizeMedia: (resourceName: "Property" | "Member" | "Office", parentKey: string, media: MediaType[number]) => { MediaKey: string | null; LongDescription: string | null; MediaURL: string | null; ModificationTimestamp: DateTime.Utc | null; Order: number | null; PreferredPhotoYN: boolean | null; ResourceRecordId: string | null; MediaCategory: "Additional Pictures Website" | "Alternate Feature Sheet Website" | "Branded Virtual Tour" | "Documents" | "Floor Plan" | "Floorplan" | "Logo" | "Map Website" | "Member Photo" | "Office Logo" | "Other" | "Photo" | "Photos" | "Property Photo" | "Sales Brochure Website" | "Sound Bite Website" | "Unbranded Virtual Tour" | "Video" | "Video Tour Website" | null; ResourceName: "Member" | "Office" | "Property"; ResourceRecordKey: string; }; export declare const normalizePropertyGraph: (property: Property) => Effect.Effect<{ property: Property; rooms: { RoomKey: string | null; ListingId: string | null; ModificationTimestamp: DateTime.Utc; RoomDescription: string | null; RoomDimensions: string | null; RoomLength: number | null; RoomLevel: "Above" | "Additional Accommodation" | "Auxiliary Building" | "Basement" | "Fifth level" | "Flat" | "Fourth level" | "Ground level" | "In between" | "Loft" | "Lower level" | "Main level" | "Other" | "Second level" | "Secondary Dwelling Unit" | "Sixth Level" | "Sub-basement" | "Third level" | "Unknown" | "Upper Level" | null; RoomWidth: number | null; RoomLengthWidthUnits: "feet" | "meters" | null; RoomType: "1pc Bathroom" | "1pc Ensuite bath" | "2pc Bathroom" | "2pc Ensuite bath" | "3pc Bathroom" | "3pc Ensuite bath" | "4pc Bathroom" | "4pc Ensuite bath" | "5pc Bathroom" | "5pc Ensuite bath" | "6pc Bathroom" | "6pc Ensuite bath" | "Addition" | "Additional bedroom" | "Atrium" | "Attic" | "Attic (finished)" | "Balcony" | "Bath (# pieces 1-6)" | "Bathroom" | "Bedroom" | "Bedroom - Bachelor" | "Bedroom 2" | "Bedroom 3" | "Bedroom 4" | "Bedroom 5" | "Bedroom 6" | "Beverage room" | "Bonus Room" | "Breakfast" | "Cold room" | "Computer Room" | "Conservatory" | "Den" | "Dinette" | "Dining nook" | "Dining room" | "Eat in kitchen" | "Eating area" | "Enclosed porch" | "Ensuite" | "Ensuite (# pieces 2-6)" | "Entrance" | "Exercise room" | "Family bathroom" | "Family room" | "Family room/Fireplace" | "Flat" | "Flex Space" | "Florida room" | "Florida/Fireplace" | "Foyer" | "Fruit cellar" | "Full bathroom" | "Full ensuite bathroom" | "Furnace" | "Games room" | "Great room" | "Guest suite" | "Gym" | "Hall" | "Hobby room" | "In-law suite" | "Indoor Pool Room" | "Inlaw suite" | "Jacuzzi" | "Kitchen" | "Kitchen/Dining room" | "Laundry / Bath" | "Laundry room" | "Library" | "Living room" | "Living room/Dining room" | "Living room/Fireplace" | "Lobby" | "Loft" | "Lunchroom" | "Media" | "Mezzanine" | "Mud room" | "Multi-use room" | "Music" | "Muskoka Room" | "Not known" | "Nursery" | "Office" | "Other" | "Pantry" | "Partial bathroom" | "Partial ensuite bathroom" | "Party room" | "Patio" | "Photography-dark room" | "Playroom" | "Porch" | "Primary Bedroom" | "Recreation room" | "Recreational, Games room" | "Rental unit" | "Roughed-In Bathroom" | "Sauna" | "Second Kitchen" | "Sitting room" | "Solarium" | "Steam room" | "Storage" | "Studio" | "Study" | "Sunroom" | "Sunroom/Fireplace" | "Unfinished Room" | "Utility room" | "Walk Up Attic" | "Wine Cellar" | "Workshop" | null; ListingKey: string | null; }[]; media: { MediaKey: string | null; LongDescription: string | null; MediaURL: string | null; ModificationTimestamp: DateTime.Utc | null; Order: number | null; PreferredPhotoYN: boolean | null; ResourceRecordId: string | null; MediaCategory: "Additional Pictures Website" | "Alternate Feature Sheet Website" | "Branded Virtual Tour" | "Documents" | "Floor Plan" | "Floorplan" | "Logo" | "Map Website" | "Member Photo" | "Office Logo" | "Other" | "Photo" | "Photos" | "Property Photo" | "Sales Brochure Website" | "Sound Bite Website" | "Unbranded Virtual Tour" | "Video" | "Video Tour Website" | null; ResourceName: "Member" | "Office" | "Property"; ResourceRecordKey: string; }[]; }, never, never>; export {}; //# sourceMappingURL=normalizers.d.ts.map