import * as React from 'react';
import { PageSpeedFormConfig } from '@page-speed/forms/integration';
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bi_ClKrO.js';
import { I as ImageItem, A as ActionConfig, a as SocialLinkItem, O as OptixFlowConfig } from './blocks-k17uluAz.js';
import 'react/jsx-runtime';
import 'class-variance-authority';
import './button-variants-lRElsmTc.js';
import 'class-variance-authority/types';

/**
 * Link item for the newsletter social link page
 */
interface NewsletterSocialLink extends ActionConfig {
    id?: string;
    iconName?: string;
}
/**
 * Social link for the newsletter social link page
 */
interface NewsletterSocialSocialLink extends SocialLinkItem {
    id?: string;
    iconName?: string;
}
/**
 * Props for the LinkPageNewsletterSocial component
 */
interface LinkPageNewsletterSocialProps {
    /**
     * Profile name displayed at the top
     */
    name?: React.ReactNode;
    /**
     * Optional bio or description
     */
    bio?: React.ReactNode;
    /**
     * Avatar image configuration
     */
    avatar?: ImageItem;
    /**
     * Avatar image URL (legacy)
     */
    avatarUrl?: string;
    /**
     * Custom slot for profile header content
     */
    profileSlot?: React.ReactNode;
    /**
     * Newsletter section heading
     */
    newsletterHeading?: React.ReactNode;
    /**
     * Newsletter section description
     */
    newsletterDescription?: React.ReactNode;
    /**
     * Email input placeholder text
     */
    emailPlaceholder?: string;
    /**
     * Submit button text (used when submitAction is not provided)
     */
    buttonText?: React.ReactNode;
    /**
     * Submit action configuration
     */
    submitAction?: ActionConfig;
    /**
     * Custom slot for rendering the newsletter card
     */
    newsletterSlot?: React.ReactNode;
    /**
     * Custom slot for rendering form fields inside the newsletter card
     */
    formSlot?: React.ReactNode;
    /**
     * Label to show while submitting
     */
    submittingLabel?: React.ReactNode;
    /**
     * Icon to show while submitting
     */
    submittingIcon?: React.ReactNode;
    /**
     * Array of links to display below the newsletter
     */
    links?: NewsletterSocialLink[];
    /**
     * Custom slot for rendering links (overrides links array)
     */
    linksSlot?: React.ReactNode;
    /**
     * Chevron icon displayed on link items
     */
    linkChevronIcon?: React.ReactNode;
    /**
     * Array of social media links
     */
    socialLinks?: NewsletterSocialSocialLink[];
    /**
     * Custom slot for rendering social links (overrides socialLinks array)
     */
    socialLinksSlot?: React.ReactNode;
    /**
     * Footer action configuration
     */
    footerAction?: ActionConfig;
    /**
     * Custom slot for rendering footer content
     */
    footerSlot?: React.ReactNode;
    /**
     * Additional CSS classes for the section
     */
    className?: string;
    /**
     * Additional CSS classes for the outer wrapper
     */
    containerClassName?: string;
    /**
     * Additional CSS classes for the inner content container
     */
    contentClassName?: string;
    /**
     * Additional CSS classes for the profile header
     */
    headerClassName?: string;
    /**
     * Additional CSS classes for the avatar wrapper
     */
    avatarClassName?: string;
    /**
     * Additional CSS classes for the name
     */
    nameClassName?: string;
    /**
     * Additional CSS classes for the bio
     */
    bioClassName?: string;
    /**
     * Additional CSS classes for the social links container
     */
    socialLinksClassName?: string;
    /**
     * Additional CSS classes for each social link
     */
    socialLinkClassName?: string;
    /**
     * Additional CSS classes for social icons
     */
    socialIconClassName?: 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 container
     */
    formClassName?: string;
    /**
     * Additional CSS classes for the input field
     */
    inputClassName?: string;
    /**
     * Additional CSS classes for the submit button
     */
    submitButtonClassName?: string;
    /**
     * Additional CSS classes for the links container
     */
    linksClassName?: string;
    /**
     * Additional CSS classes for each link item
     */
    linkClassName?: string;
    /**
     * Additional CSS classes for link icons
     */
    linkIconClassName?: string;
    /**
     * Additional CSS classes for link labels
     */
    linkLabelClassName?: string;
    /**
     * Additional CSS classes for the link chevron
     */
    linkChevronClassName?: string;
    /**
     * Additional CSS classes for the footer
     */
    footerClassName?: 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;
    /**
     * Additional CSS classes for the pattern overlay
     */
    patternClassName?: string;
    /**
     * 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, campaign: "link-page" })
     *   });
     * }}
     */
    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;
    /**
     * OptixFlow image optimization configuration
     */
    optixFlowConfig?: OptixFlowConfig;
}
/**
 * LinkPageNewsletterSocial - A link page with integrated newsletter signup form.
 *
 * This component provides a link page with:
 * - Profile section with avatar, name, and bio
 * - Newsletter signup form with email validation
 * - Form integration with @page-speed/forms library
 * - Links section below the newsletter
 * - Social media links
 * - Light and dark theme support
 *
 * The newsletter form supports:
 * - Universal REST API integration via formConfig
 * - Custom submission handlers via onSubmit
 * - Success and error callbacks
 * - DashTrack Rails backend integration
 *
 * @example
 * ```tsx
 * // Basic usage
 * <LinkPageNewsletterSocial
 *   name="Content Creator"
 *   bio="Weekly tips on growing your audience"
 *   newsletterHeading="Join my newsletter"
 *   formConfig={{ endpoint: "/api/subscribe" }}
 * />
 *
 * // With custom submission handler
 * <LinkPageNewsletterSocial
 *   name="Content Creator"
 *   onSubmit={async (email) => {
 *     await myCustomApi.subscribe(email);
 *   }}
 *   onSuccess={() => toast.success("Subscribed!")}
 * />
 * ```
 */
declare function LinkPageNewsletterSocial({ name, bio, avatar, avatarUrl, profileSlot, newsletterHeading, newsletterDescription, emailPlaceholder, buttonText, submitAction, newsletterSlot, formSlot, submittingLabel, submittingIcon, links, linksSlot, linkChevronIcon, socialLinks, socialLinksSlot, footerAction, footerSlot, className, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, inputClassName, submitButtonClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, linkChevronClassName, footerClassName, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: LinkPageNewsletterSocialProps): React.JSX.Element;

export { LinkPageNewsletterSocial, type LinkPageNewsletterSocialProps, type NewsletterSocialLink, type NewsletterSocialSocialLink };
