export { AboutHome, BlogCardFullWidthHorizontal, BlogCardFullWidthHorizontalAlt, BlogCardFullWidthHorizontalCompact, BlogCardFullWidthHorizontalMinimal, BlogCardFullWidthVertical, BlogCardFullWidthVerticalAlt, BlogCardFullWidthVerticalCompact, BlogCardFullWidthVerticalMinimal, BlogCardHorizontal, BlogCardHorizontalBadge, BlogCardHorizontalCompact, BlogCardHorizontalMinimal, BlogCardVertical, BlogCardVerticalBadge, BlogCardVerticalCompact, BlogCardVerticalMinimal, BlogGallery, BlogHome, BlogPostSection, BlogSection, ContactHome, ContactSection, EmailSignupSection, EmailSignupSectionProps, FAQGrid, FAQHero, FAQHome, FeatureTabHorizontal, FeatureTabVertical, FeatureTextCentered, FeatureTextFeaturedIconBox, FeatureTextFeaturedIconCard, FeatureTextFeaturedIconLeft, FeatureTextFeaturedIconTopCentered, FeatureTextFeaturedIconTopCenteredBrand, FeatureTextFeaturedIconTopLeft, FeatureTextFeaturedIconTopLeftBrand, FeatureTextIconCard, FeatureTextIconLeft, FeatureTextIconTopCentered, FeatureTextIconTopLeft, FeatureTextIntegrationIconBox, FeatureTextIntegrationIconLeft, FeatureTextIntegrationIconTopCentered, FeatureTextIntegrationIconTopLeft, FeatureTextLeft, FeatureTextLeftBrand, FooterHome, GenericHeaderComponent, GenericTextHero, HeaderNavigation, HeroHome, HomeHeroComponent, JobApplicationForm, JobDetailHero, JobDetailSection, JobGallery, LocationDetailHero, LocationDetailsSection, LocationGrid, PackageForMenu, PolicyDocumentSection, ServiceDetailContent, ServiceDetailHero, ServiceMenuSection, ServiceMenuSectionProps, ServicesGrid, ServicesHome, SocialMediaGrid, SocialMediaHero, StatisticsSection, TeamGrid, TestimonialsGrid, TestimonialsHero, TestimonialsHome, ValuesSection, getBlogPostData } from './design_system/sections/index.js';
export { Avatar, AvatarLabelGroup, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, ComboBox, FeaturedIcon, Form, FormContainer, GoogleMap, HintText, Input, InputBase, InputGroup, Label, MarkdownRenderer, Modal, ModalProps, NativeSelect, Pagination, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, RatingBadge, RatingStars, RoundButton, Select, SelectItem, SocialIcon, StarIcon, Textarea, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getSocialIcon, getStarProgress, useCarousel } from './design_system/elements/index.js';
import { C as CompanyInformation } from './package-CB1tENyG.js';
export { ThemeProvider, useTheme } from './contexts/index.js';
import React__default from 'react';
export { Theme } from './themes/index.js';
import './blog-post-vWzW8yFb.js';
import './photos-CmBdWiuZ.js';
import './website-photos-Cl1YqAno.js';
import 'react-aria-components';
import 'embla-carousel-react';

interface ContactFormResult {
    success: boolean;
    message?: string;
    error?: string;
    /** Present on lead form success; use for Meta Pixel dedup: fbq('track', 'Lead', {}, { eventID: eventId }) */
    eventId?: string;
}
declare function submitContactFormAction(formData: FormData): Promise<ContactFormResult>;
declare function submitLeadFormAction(formData: FormData): Promise<ContactFormResult>;

/**
 * Resolves the primary and secondary CTA hrefs used across the site.
 *
 * Resolution order for primaryHref:
 *   1. portal_url            — set by backend when account has consumer portal enabled
 *   2. external_management_url — booking platform URL from the API
 *   3. /contact               — final fallback
 *
 * No per-site configuration needed. Enable the portal in the admin console and
 * every CTA across the site automatically routes to the portal.
 */

/** True when the href is absolute (external); use for target="_blank" and rel="noopener noreferrer". */
declare function isExternalCtaUrl(href: string): boolean;
interface ResolvedCtaUrls {
    primaryHref: string;
    secondaryHref: string;
    hasSecondary: boolean;
}
declare function resolveCtaUrls(companyInformation?: CompanyInformation | null): ResolvedCtaUrls;

interface TeamMember {
    id: number;
    name: string;
    position?: string;
    photo_url?: string;
}
interface ChatWidgetProps {
    position?: 'bottom-right' | 'bottom-left';
    primaryColor?: string;
    /**
     * Anonymous session identifier. Used when the visitor is not authenticated.
     * Mutually exclusive with `contactId` — if both are provided, `contactId` wins.
     */
    sessionId?: string;
    /**
     * Authenticated contact ID. When provided, messages are loaded and sent using
     * the contact-driven flow instead of the anonymous session flow.
     * The `/api/chat` route must support `contact_id` (see `createChatRouteHandlers`).
     */
    contactId?: number;
    displayName?: string;
    teamMembers?: TeamMember[];
}
declare function ChatWidget({ position, primaryColor, sessionId: providedSessionId, contactId, displayName: providedDisplayName, teamMembers }: ChatWidgetProps): React__default.JSX.Element;

export { ChatWidget, type ResolvedCtaUrls, isExternalCtaUrl, resolveCtaUrls, submitContactFormAction, submitLeadFormAction };
