import * as React from 'react';
import { FormFieldConfig, PageSpeedFormConfig } from '@page-speed/forms/integration';
import { f as SectionBackground, t as PatternName, g as SectionSpacing } from './community-initiatives-DmVsuoHE.js';
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-XLPGq8A5.js';
import 'react/jsx-runtime';
import 'class-variance-authority';
import './button-variants-CdNtNOuP.js';
import 'class-variance-authority/types';

interface DirectionConfig {
    desktop: "mediaRight" | "mediaLeft";
    mobile: "mediaTop" | "mediaBottom";
}
interface ContactPhotographyProps {
    /** Main heading text */
    heading?: React.ReactNode;
    /** Description text below heading */
    description?: React.ReactNode;
    /** Submit button text */
    buttonText?: string;
    /** Icon to display in submit button */
    buttonIcon?: React.ReactNode;
    /** Array of action configurations for custom buttons */
    actions?: ActionConfig[];
    /** Custom slot for rendering actions (overrides actions array) */
    actionsSlot?: React.ReactNode;
    /**
     * Array of form field configurations
     * If not provided, defaults to: first_name, last_name, email, phone, message
     */
    formFields?: FormFieldConfig[];
    /**
     * Success message to display after form submission
     * @default "Thank you! Your message has been sent successfully."
     */
    successMessage?: React.ReactNode;
    /**
     * Additional CSS classes for the container
     */
    containerClassName?: string;
    /** Additional CSS classes for the section */
    className?: string;
    /** Additional CSS classes for the heading */
    headingClassName?: string;
    /** Additional CSS classes for the description */
    descriptionClassName?: string;
    /** Additional CSS classes for the content area */
    contentClassName?: string;
    /** Additional CSS classes for the form */
    formClassName?: string;
    /** Additional CSS classes for the submit button */
    submitClassName?: string;
    /** Additional CSS classes for the success message */
    successMessageClassName?: string;
    /** Additional CSS classes for the error message */
    errorMessageClassName?: string;
    /** Section background variant */
    background?: SectionBackground;
    /** Pattern background key or URL */
    pattern?: PatternName | undefined;
    /**
     * Vertical spacing for the section
     */
    spacing?: SectionSpacing;
    /** Pattern opacity (0-1) */
    patternOpacity?: number;
    /** Image source URL */
    imageSrc?: string;
    /** Image alt text */
    imageAlt?: string;
    /** Additional CSS classes for the image */
    imageClassName?: string;
    /** Optional Optix Flow configuration for image optimization */
    optixFlowConfig?: OptixFlowConfig;
    /**
     * Direction configuration for desktop and mobile layouts
     * @default { desktop: 'mediaRight', mobile: 'mediaTop' }
     */
    directionConfig?: DirectionConfig;
    /** Form configuration for PageSpeed forms */
    formConfig?: PageSpeedFormConfig;
    /** Custom submit handler */
    onSubmit?: (values: Record<string, any>) => void | Promise<void>;
    /** Success callback */
    onSuccess?: (data: unknown) => void;
    /** Error callback */
    onError?: (error: Error) => void;
}
/**
 * ContactPhotography - A full-width split-screen contact form section with edge-to-edge design,
 * featuring text content and a form on one side and a large full-height image on the other.
 *
 * Layout: 50/50 split layout with content/form and image sections. Fully responsive with
 * configurable media placement for desktop and mobile.
 * Key features: Pattern background support, edge-to-edge design, no card wrapping.
 * Best for: Photography studios, creative services, visual-first contact pages.
 *
 * @example
 * ```tsx
 * <ContactPhotography
 *   heading="Photography Services"
 *   description="Book a photography session with us"
 *   buttonText="Send Message"
 *   imageSrc="/studio.jpg"
 *   background="dark"
 *   pattern="grid"
 *   formConfig={{ endpoint: "/api/contact", format: "json" }}
 * />
 * ```
 */
declare function ContactPhotography({ heading, description, buttonText, buttonIcon, actions, actionsSlot, formFields, successMessage, containerClassName, className, headingClassName, descriptionClassName, contentClassName, formClassName, submitClassName, successMessageClassName, errorMessageClassName, spacing, background, pattern, patternOpacity, imageSrc, imageAlt, imageClassName, optixFlowConfig, directionConfig, formConfig, onSubmit, onSuccess, onError, }: ContactPhotographyProps): React.JSX.Element;

export { ContactPhotography, type ContactPhotographyProps, type DirectionConfig };
