import type { BlockManifest } from "../manifest/schema";
import type { SystemBlockDefinition } from "../registry";
import { type SectionStylesContent } from "../fields/boxStyles";
import { publicMembershipProductSchema, publicPassProductSchema, type PublicMembershipProduct, type PublicPassProduct } from "./shop.shared";
import { shopBlockRuntime } from "../runtime/nodes/shop.interactive";
/**
 * Passes & Memberships Block
 *
 * Displays purchasable passes and memberships for a site.
 *
 * Features:
 * - Browse passes and memberships (no login required)
 * - Add passes to the shared cart or buy immediately
 * - Membership checkout flow with duplicate detection
 * - Duplicate membership detection
 *
 * Security Model:
 * - Browsing is public (no auth required)
 * - Purchase creates customer on-demand via email
 * - Stripe handles payment security
 */
export declare const shopManifest: BlockManifest;
export type ShopContent = {
    showPasses?: boolean | null;
    showMemberships?: boolean | null;
    layout?: "grid" | "list" | null;
    columns?: "1" | "2" | "3" | "4" | null;
    showDescriptions?: boolean | null;
    showValidityPeriod?: boolean | null;
    showPricePerCredit?: boolean | null;
    passesHeading?: string | null;
    membershipsHeading?: string | null;
    buyButtonText?: string | null;
    passPurchaseMode?: 'add_to_cart' | 'buy_now' | null;
    subscribeButtonText?: string | null;
    emptyStateText?: string | null;
    _sectionStyles?: SectionStylesContent;
};
export { publicMembershipProductSchema, publicPassProductSchema, };
export type { PublicMembershipProduct, PublicPassProduct, };
export declare const shopBlockDefinition: SystemBlockDefinition<ShopContent, typeof shopBlockRuntime>;
