import * as React from 'react';
import { P as PageSpeedFormConfig } from './forms-BCcwNFhk.js';
import { P as PatternName } from './pattern-background-a7gKHzHy.js';
import { f as SectionBackground, g as SectionSpacing } from './community-initiatives-BeWIIjA4.js';
import { A as ActionConfig } from './blocks-k17uluAz.js';
import 'react/jsx-runtime';
import 'class-variance-authority';
import './button-variants-lRElsmTc.js';
import 'class-variance-authority/types';

interface CtaAppDownloadNewsletterProps {
    /**
     * App section heading
     */
    appHeading?: React.ReactNode;
    /**
     * App section description
     */
    appDescription?: React.ReactNode;
    /**
     * Array of action configurations for app download buttons
     */
    appActions?: ActionConfig[];
    /**
     * Custom slot for rendering app actions (overrides appActions array)
     */
    appActionsSlot?: React.ReactNode;
    /**
     * Phone mockup image URL
     */
    phoneMockupImage?: string;
    /**
     * Newsletter section heading
     */
    newsletterHeading?: React.ReactNode;
    /**
     * Newsletter section description
     */
    newsletterDescription?: React.ReactNode;
    /**
     * Newsletter button text
     */
    newsletterButtonText?: string;
    /**
     * Email input placeholder
     */
    emailPlaceholder?: string;
    /**
     * Additional CSS classes for the section
     */
    className?: string;
    /**
     * Additional CSS classes for the container
     */
    containerClassName?: string;
    /**
     * Additional CSS classes for the grid
     */
    gridClassName?: string;
    /**
     * Additional CSS classes for the app card
     */
    appCardClassName?: string;
    /**
     * Additional CSS classes for the app heading
     */
    appHeadingClassName?: string;
    /**
     * Additional CSS classes for the app description
     */
    appDescriptionClassName?: string;
    /**
     * Additional CSS classes for the app actions container
     */
    appActionsClassName?: string;
    /**
     * Additional CSS classes for the newsletter card
     */
    newsletterCardClassName?: string;
    /**
     * Additional CSS classes for the newsletter heading
     */
    newsletterHeadingClassName?: string;
    /**
     * Additional CSS classes for the newsletter description
     */
    newsletterDescriptionClassName?: string;
    /**
     * Additional CSS classes for the form
     */
    formClassName?: string;
    /**
     * Background style for the section
     */
    background?: SectionBackground;
    /**
     * Vertical spacing for the section
     */
    spacing?: SectionSpacing;
    /**
     * Optional background pattern name or URL
     */
    pattern?: PatternName | undefined;
    /**
     * Pattern overlay opacity (0-1)
     */
    patternOpacity?: number;
    /**
     * Optional form submission configuration.
     *
     * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
     * and the form will submit to it in JSON format.
     *
     * @example
     * // Works with any API
     * formConfig={{ endpoint: "https://api.mysite.com/subscribe", format: "json" }}
     *
     * @example
     * // With custom headers (e.g., authentication)
     * formConfig={{
     *   endpoint: "/api/newsletter",
     *   headers: { "Authorization": "Bearer token123" }
     * }}
     *
     * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
     * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
     * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
     *
     * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
     */
    formConfig?: PageSpeedFormConfig;
    /**
     * Optional custom submission handler for maximum flexibility.
     *
     * Use this when you need complete control over the submission logic,
     * such as custom API calls, analytics tracking, or multi-step workflows.
     *
     * Can be used alone or in combination with `formConfig` for hybrid approaches.
     *
     * @example
     * onSubmit={async (email) => {
     *   await fetch("/api/subscribe", {
     *     method: "POST",
     *     body: JSON.stringify({ email, source: "homepage" })
     *   });
     * }}
     */
    onSubmit?: (email: string) => void | Promise<void>;
    /**
     * Optional success callback invoked after successful submission.
     *
     * Called after `formConfig` submission and/or `onSubmit` completes successfully.
     * Use for showing success messages, redirecting, analytics tracking, etc.
     */
    onSuccess?: (data: unknown) => void;
    /**
     * Optional error callback invoked if submission fails.
     *
     * Receives the error object for custom error handling, logging, or user notifications.
     */
    onError?: (error: Error) => void;
    /**
     * Optional Optix Flow configuration for image optimization
     */
    optixFlowConfig?: {
        apiKey: string;
        compression?: number;
    };
}
/**
 * CtaAppDownloadNewsletter - A two-column CTA grid featuring an app download
 * section with phone mockup and a newsletter subscription form. Perfect for
 * mobile app promotions.
 *
 * @example
 * ```tsx
 * <CtaAppDownloadNewsletter
 *   appHeading="Download Our App"
 *   appDescription="Get the best experience on mobile."
 *   appActions={[
 *     { label: "App Store", href: "https://apps.apple.com", variant: "default" },
 *     { label: "Google Play", href: "https://play.google.com", variant: "outline" }
 *   ]}
 *   newsletterHeading="Stay Updated"
 *   newsletterDescription="Subscribe to our newsletter."
 * />
 * ```
 */
declare function CtaAppDownloadNewsletter({ appHeading, appDescription, appActions, appActionsSlot, phoneMockupImage, newsletterHeading, newsletterDescription, newsletterButtonText, emailPlaceholder, className, containerClassName, gridClassName, appCardClassName, appHeadingClassName, appDescriptionClassName, appActionsClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: CtaAppDownloadNewsletterProps): React.JSX.Element;

export { CtaAppDownloadNewsletter, type CtaAppDownloadNewsletterProps };
