import type { LeadImagePlaceholderMap } from "../components/units/types"; export interface PublicPropertyGeolocation { lat: number; lng: number; } export interface PublicPropertyAttributes { description: string | null; leasing_office_hours: string | null; leasing_phone_number: string | null; website_url: string | null; application_link: string | null; pet_policy: string | null; parking_policy: string | null; year_built: number | null; total_units: number | null; geolocation: PublicPropertyGeolocation | null; community_highlights: string[] | null; available_lease_terms: number[] | null; } export interface PublicPropertyMedia { id: string | null; url: string; name: string | null; description: string | null; type: string | null; rank: number | null; thumbhash?: string | null; } export interface PublicProperty { id: number; name: string | null; address: string | null; city: string | null; state: string | null; postal_code: string | null; google_maps_url: string | null; media: PublicPropertyMedia[] | null; attributes: PublicPropertyAttributes | null; } interface UsePropertiesOptions { enabled?: boolean; includeMedia?: boolean; includeAttributes?: boolean; includeAmenities?: boolean; includeLeadImagePlaceholders?: boolean; includeImagePlaceholders?: boolean; } interface PropertiesResponse { items?: PublicProperty[]; lead_image_placeholders?: LeadImagePlaceholderMap; } /** * Fetch every property a central/multi-property site can show * (GET /v1/sites/{siteId}/properties — scoped to the session's building_ids). * * Filtering / grouping / search are done client-side by the consuming components, * which is appropriate for typical portfolio sizes. For very large portfolios a * server-side paginated /v1/properties search endpoint would replace this. */ export declare function useProperties(options?: UsePropertiesOptions): { properties: PublicProperty[]; leadImagePlaceholders: LeadImagePlaceholderMap; loading: boolean; error: string | null; refetch: () => Promise; }; export {}; //# sourceMappingURL=useProperties.d.ts.map