import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import { PageSpeedFormConfig } from '@page-speed/forms/integration';
import { O as OptixFlowConfig } from './blocks-BJ3CyHu6.js';
import 'class-variance-authority';
import './button-variants-lRElsmTc.js';
import 'class-variance-authority/types';
import '@opensite/hooks/usePlatformFromUrl';

interface ResourceListHeroFilterBreadcrumbItem {
    /**
     * Breadcrumb label
     */
    label: React.ReactNode;
    /**
     * Breadcrumb link URL
     */
    link: string;
}
interface ResourceListHeroFilterPost {
    /**
     * Post category (used for filtering - must be string)
     */
    category: string;
    /**
     * Category display label (can be ReactNode for custom rendering)
     */
    categoryLabel?: React.ReactNode;
    /**
     * Post title
     */
    title: React.ReactNode;
    /**
     * Post summary/description
     */
    summary: React.ReactNode;
    /**
     * Post link URL
     */
    link: string;
    /**
     * CTA button text
     */
    cta: React.ReactNode;
    /**
     * Post thumbnail image URL
     */
    thumbnail: string;
    /**
     * Additional CSS classes for the post card
     */
    className?: string;
}
interface ResourceListHeroFilterCategory {
    /**
     * Category display label
     */
    label: React.ReactNode;
    /**
     * Category value for filtering (must be string for deterministic filtering)
     */
    value: string;
}
interface ResourceListHeroFilterProps {
    /**
     * Additional CSS classes for the section wrapper
     */
    className?: string;
    /**
     * Main heading content
     */
    title?: React.ReactNode;
    /**
     * Additional CSS classes for the title
     */
    titleClassName?: string;
    /**
     * Description text below heading
     */
    description?: React.ReactNode;
    /**
     * Additional CSS classes for the description
     */
    descriptionClassName?: string;
    /**
     * Breadcrumb navigation items
     */
    breadcrumb?: ResourceListHeroFilterBreadcrumbItem[];
    /**
     * Custom slot for rendering breadcrumb (overrides breadcrumb array)
     */
    breadcrumbSlot?: React.ReactNode;
    /**
     * Additional CSS classes for the breadcrumb
     */
    breadcrumbClassName?: string;
    /**
     * Primary/featured post configuration
     */
    primaryPost?: ResourceListHeroFilterPost;
    /**
     * Custom slot for rendering primary post (overrides primaryPost)
     */
    primaryPostSlot?: React.ReactNode;
    /**
     * Additional CSS classes for the primary post container
     */
    primaryPostClassName?: string;
    /**
     * Array of post configurations for the filtered list
     */
    posts?: ResourceListHeroFilterPost[];
    /**
     * Custom slot for rendering posts (overrides posts array)
     */
    postsSlot?: React.ReactNode;
    /**
     * Additional CSS classes for the posts container
     */
    postsClassName?: string;
    /**
     * Category configurations for filtering
     */
    categories?: ResourceListHeroFilterCategory[];
    /**
     * Additional CSS classes for the categories filter
     */
    categoriesClassName?: string;
    /**
     * Title for the all posts section
     */
    allPostsTitle?: React.ReactNode;
    /**
     * Additional CSS classes for the all posts title
     */
    allPostsTitleClassName?: string;
    /**
     * Email input placeholder text
     */
    emailPlaceholder?: string;
    /**
     * Submit button text
     */
    buttonText?: React.ReactNode;
    /**
     * Number of posts to show per page
     */
    postsPerPage?: number;
    /**
     * Load more button text
     */
    loadMoreText?: React.ReactNode;
    /**
     * Additional CSS classes for the hero section
     */
    heroClassName?: string;
    /**
     * Additional CSS classes for the content section
     */
    contentClassName?: string;
    /**
     * Custom hero background pattern URL (defaults to dotPattern2)
     */
    heroPatternUrl?: string;
    /**
     * Hero background pattern size (defaults to "3.125rem 3.125rem")
     */
    heroPatternSize?: 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, source: "resource-list" })
     *   });
     * }}
     */
    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;
}
/**
 * ResourceListHeroFilter - A comprehensive resource listing page with hero section,
 * breadcrumb navigation, email subscription form, featured post card, and filterable
 * resource grid with category checkboxes and load more functionality.
 *
 * Key features:
 * - Hero section with pattern background and breadcrumb navigation
 * - Email subscription form with @page-speed/forms integration
 * - Featured primary post card with image, category, and CTA
 * - Filterable resource grid with category checkboxes
 * - Load more pagination for resource cards
 * - Responsive layout with mobile-first design
 *
 * Ideal for: Resource centers, blog archives, documentation hubs, report libraries,
 * knowledge bases, and content marketing pages that need category filtering and
 * email capture functionality.
 */
declare function ResourceListHeroFilter({ className, title, titleClassName, description, descriptionClassName, breadcrumb, breadcrumbSlot, breadcrumbClassName, primaryPost, primaryPostSlot, primaryPostClassName, posts, postsSlot, postsClassName, categories, categoriesClassName, allPostsTitle, allPostsTitleClassName, emailPlaceholder, buttonText, postsPerPage, loadMoreText, heroClassName, contentClassName, heroPatternUrl, heroPatternSize, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: ResourceListHeroFilterProps): react_jsx_runtime.JSX.Element;

export { ResourceListHeroFilter, type ResourceListHeroFilterProps };
