import type { PublicMembershipProduct, PublicPassProduct } from '../../blocks/shop.shared';
import type { PublicProduct } from '../../blocks/products/shared';
import { type CartDisplay, type CheckoutDisplay, type PassesMembershipsDisplay, type ProductDetailDisplay, type ProductListDisplay } from './commerce/shared/display';
import type { CommerceCartItem } from './shop-commerce.shared';
import type { ShopDisplayConfig } from './shop.types';
import { type InteractiveIslandProps } from '../../../contracts/islands';
type ShopSourceProps = ShopDisplayConfig & Readonly<{
    siteId?: string;
    apiBaseUrl?: string;
    stage?: 'preview' | 'published';
}>;
export type { ShopSourceProps };
export type PassesMembershipsHydration = Readonly<{
    passes: readonly PublicPassProduct[];
    memberships: readonly PublicMembershipProduct[];
    passPurchaseMode: 'add_to_cart' | 'buy_now';
}>;
export type ProductListHydration = Readonly<{
    products: readonly PublicProduct[];
    showSummary: boolean;
    showBadges: boolean;
    showPrices: boolean;
    addButtonText: string;
}>;
export type ProductDetailHydration = Readonly<{
    products: readonly PublicProduct[];
    productId: string | null;
    showSummary: boolean;
    showBadges: boolean;
    showBody: boolean;
    addButtonText: string;
}>;
export type CartHydration = Readonly<{
    emptyStateText: string;
    checkoutButtonText: string;
    clearButtonText: string;
}>;
export type CheckoutHydration = Readonly<{
    emptyStateText: string;
    submitButtonText: string;
}>;
type ShopIslandMeta = Readonly<{
    siteId?: string;
    apiBaseUrl?: string;
    stage?: 'preview' | 'published';
}>;
export declare function resolveShowPricePerCredit(source: Pick<ShopSourceProps, 'showPricePerCredit'>): boolean;
export type ShopInteractiveRender = Readonly<{
    mode: 'passes-memberships';
    display: PassesMembershipsDisplay;
    hydration: PassesMembershipsHydration;
}> | Readonly<{
    mode: 'product-list';
    display: ProductListDisplay;
    hydration: ProductListHydration;
}> | Readonly<{
    mode: 'product-detail';
    display: ProductDetailDisplay;
    hydration: ProductDetailHydration;
}> | Readonly<{
    mode: 'cart';
    display: CartDisplay;
    hydration: CartHydration;
}> | Readonly<{
    mode: 'checkout';
    display: CheckoutDisplay;
    hydration: CheckoutHydration;
}>;
export type ShopInteractiveIslandProps = InteractiveIslandProps<ShopIslandMeta, 'passes-memberships', typeof shopBlockRuntime>;
export type ProductListInteractiveIslandProps = InteractiveIslandProps<ShopIslandMeta, 'product-list', typeof productListBlockRuntime>;
export type ProductDetailInteractiveIslandProps = InteractiveIslandProps<ShopIslandMeta, 'product-detail', typeof productDetailBlockRuntime>;
export type CartInteractiveIslandProps = InteractiveIslandProps<ShopIslandMeta, 'cart', typeof cartBlockRuntime>;
export type CheckoutInteractiveIslandProps = InteractiveIslandProps<ShopIslandMeta, 'checkout', typeof checkoutBlockRuntime>;
export type CommerceInteractiveIslandProps = ProductListInteractiveIslandProps | ProductDetailInteractiveIslandProps | CartInteractiveIslandProps | CheckoutInteractiveIslandProps;
export declare const shopBlockRuntime: Readonly<{
    kind: "progressive";
    buildRender: (source: ShopSourceProps) => Readonly<{
        display: Readonly<{
            kind: "passes-memberships";
            state: "empty" | "ready";
            className: string | null;
            layout: "grid" | "list";
            columns: string;
            emptyMessage: string;
            passesHeading: string;
            membershipsHeading: string;
            passes: readonly Readonly<{
                id: string;
                title: string;
                description: string | null;
                priceLabel: string;
                creditsLabel: string;
                perCreditLabel: string | null;
                validityLabel: string | null;
                actionLabel: string;
            }>[];
            memberships: readonly Readonly<{
                id: string;
                title: string;
                description: string | null;
                priceLabel: string;
                intervalLabel: string;
                actionLabel: string;
            }>[];
        }>;
        hydration: Readonly<{
            passes: readonly PublicPassProduct[];
            memberships: readonly PublicMembershipProduct[];
            passPurchaseMode: "add_to_cart" | "buy_now";
        }>;
    }>;
    contracts: Readonly<{
        source: Readonly<{
            encode: (value: ShopSourceProps) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<ShopSourceProps>;
        }>;
        render: Readonly<{
            encode: (value: Readonly<{
                display: Readonly<{
                    kind: "passes-memberships";
                    state: "empty" | "ready";
                    className: string | null;
                    layout: "grid" | "list";
                    columns: string;
                    emptyMessage: string;
                    passesHeading: string;
                    membershipsHeading: string;
                    passes: readonly Readonly<{
                        id: string;
                        title: string;
                        description: string | null;
                        priceLabel: string;
                        creditsLabel: string;
                        perCreditLabel: string | null;
                        validityLabel: string | null;
                        actionLabel: string;
                    }>[];
                    memberships: readonly Readonly<{
                        id: string;
                        title: string;
                        description: string | null;
                        priceLabel: string;
                        intervalLabel: string;
                        actionLabel: string;
                    }>[];
                }>;
                hydration: Readonly<{
                    passes: readonly PublicPassProduct[];
                    memberships: readonly PublicMembershipProduct[];
                    passPurchaseMode: "add_to_cart" | "buy_now";
                }>;
            }>) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
                display: Readonly<{
                    kind: "passes-memberships";
                    state: "empty" | "ready";
                    className: string | null;
                    layout: "grid" | "list";
                    columns: string;
                    emptyMessage: string;
                    passesHeading: string;
                    membershipsHeading: string;
                    passes: readonly Readonly<{
                        id: string;
                        title: string;
                        description: string | null;
                        priceLabel: string;
                        creditsLabel: string;
                        perCreditLabel: string | null;
                        validityLabel: string | null;
                        actionLabel: string;
                    }>[];
                    memberships: readonly Readonly<{
                        id: string;
                        title: string;
                        description: string | null;
                        priceLabel: string;
                        intervalLabel: string;
                        actionLabel: string;
                    }>[];
                }>;
                hydration: Readonly<{
                    passes: readonly PublicPassProduct[];
                    memberships: readonly PublicMembershipProduct[];
                    passPurchaseMode: "add_to_cart" | "buy_now";
                }>;
            }>>;
        }>;
    }>;
}>;
export declare const productListBlockRuntime: Readonly<{
    kind: "progressive";
    buildRender: (source: ShopSourceProps) => Readonly<{
        display: Readonly<{
            kind: "product-list";
            state: "empty" | "ready";
            heading: string | null;
            className: string | null;
            layout: "grid" | "list";
            columns: string;
            emptyMessage: string;
            cards: readonly Readonly<{
                productId: string;
                title: string;
                path: string | null;
                summary: string | null;
                priceLabel: string | null;
                badges: readonly string[];
                image: Readonly<{
                    url: string;
                    alt: string | null;
                }> | null;
                variantOptions: readonly Readonly<{
                    id: string;
                    label: string;
                    soldOut: boolean;
                }>[];
                selectedVariantId: string | null;
                selectionLabel: string;
                actionLabel: string;
                soldOut: boolean;
            }>[];
        }>;
        hydration: Readonly<{
            products: readonly PublicProduct[];
            showSummary: boolean;
            showBadges: boolean;
            showPrices: boolean;
            addButtonText: string;
        }>;
    }>;
    contracts: Readonly<{
        source: Readonly<{
            encode: (value: ShopSourceProps) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<ShopSourceProps>;
        }>;
        render: Readonly<{
            encode: (value: Readonly<{
                display: Readonly<{
                    kind: "product-list";
                    state: "empty" | "ready";
                    heading: string | null;
                    className: string | null;
                    layout: "grid" | "list";
                    columns: string;
                    emptyMessage: string;
                    cards: readonly Readonly<{
                        productId: string;
                        title: string;
                        path: string | null;
                        summary: string | null;
                        priceLabel: string | null;
                        badges: readonly string[];
                        image: Readonly<{
                            url: string;
                            alt: string | null;
                        }> | null;
                        variantOptions: readonly Readonly<{
                            id: string;
                            label: string;
                            soldOut: boolean;
                        }>[];
                        selectedVariantId: string | null;
                        selectionLabel: string;
                        actionLabel: string;
                        soldOut: boolean;
                    }>[];
                }>;
                hydration: Readonly<{
                    products: readonly PublicProduct[];
                    showSummary: boolean;
                    showBadges: boolean;
                    showPrices: boolean;
                    addButtonText: string;
                }>;
            }>) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
                display: Readonly<{
                    kind: "product-list";
                    state: "empty" | "ready";
                    heading: string | null;
                    className: string | null;
                    layout: "grid" | "list";
                    columns: string;
                    emptyMessage: string;
                    cards: readonly Readonly<{
                        productId: string;
                        title: string;
                        path: string | null;
                        summary: string | null;
                        priceLabel: string | null;
                        badges: readonly string[];
                        image: Readonly<{
                            url: string;
                            alt: string | null;
                        }> | null;
                        variantOptions: readonly Readonly<{
                            id: string;
                            label: string;
                            soldOut: boolean;
                        }>[];
                        selectedVariantId: string | null;
                        selectionLabel: string;
                        actionLabel: string;
                        soldOut: boolean;
                    }>[];
                }>;
                hydration: Readonly<{
                    products: readonly PublicProduct[];
                    showSummary: boolean;
                    showBadges: boolean;
                    showPrices: boolean;
                    addButtonText: string;
                }>;
            }>>;
        }>;
    }>;
}>;
export declare const productDetailBlockRuntime: Readonly<{
    kind: "progressive";
    buildRender: (source: ShopSourceProps) => Readonly<{
        display: ProductDetailDisplay;
        hydration: Readonly<{
            products: readonly PublicProduct[];
            productId: string | null;
            showSummary: boolean;
            showBadges: boolean;
            showBody: boolean;
            addButtonText: string;
        }>;
    }>;
    contracts: Readonly<{
        source: Readonly<{
            encode: (value: ShopSourceProps) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<ShopSourceProps>;
        }>;
        render: Readonly<{
            encode: (value: Readonly<{
                display: ProductDetailDisplay;
                hydration: Readonly<{
                    products: readonly PublicProduct[];
                    productId: string | null;
                    showSummary: boolean;
                    showBadges: boolean;
                    showBody: boolean;
                    addButtonText: string;
                }>;
            }>) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
                display: ProductDetailDisplay;
                hydration: Readonly<{
                    products: readonly PublicProduct[];
                    productId: string | null;
                    showSummary: boolean;
                    showBadges: boolean;
                    showBody: boolean;
                    addButtonText: string;
                }>;
            }>>;
        }>;
    }>;
}>;
export declare const cartBlockRuntime: Readonly<{
    kind: "client-owned";
    buildRender: (source: ShopSourceProps) => Readonly<{
        display: Readonly<{
            kind: "cart";
            state: "empty" | "ready";
            heading: string | null;
            className: string | null;
            emptyMessage: string;
            supportText: string | null;
            items: readonly Readonly<{
                key: string;
                title: string;
                priceLabel: string;
                quantity: number;
                quantityEditable: boolean;
            }>[];
            subtotalLabel: string | null;
            checkoutButtonText: string;
            clearButtonText: string;
        }>;
        hydration: Readonly<{
            emptyStateText: string;
            checkoutButtonText: string;
            clearButtonText: string;
        }>;
    }>;
    contracts: Readonly<{
        source: Readonly<{
            encode: (value: ShopSourceProps) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<ShopSourceProps>;
        }>;
        render: Readonly<{
            encode: (value: Readonly<{
                display: Readonly<{
                    kind: "cart";
                    state: "empty" | "ready";
                    heading: string | null;
                    className: string | null;
                    emptyMessage: string;
                    supportText: string | null;
                    items: readonly Readonly<{
                        key: string;
                        title: string;
                        priceLabel: string;
                        quantity: number;
                        quantityEditable: boolean;
                    }>[];
                    subtotalLabel: string | null;
                    checkoutButtonText: string;
                    clearButtonText: string;
                }>;
                hydration: Readonly<{
                    emptyStateText: string;
                    checkoutButtonText: string;
                    clearButtonText: string;
                }>;
            }>) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
                display: Readonly<{
                    kind: "cart";
                    state: "empty" | "ready";
                    heading: string | null;
                    className: string | null;
                    emptyMessage: string;
                    supportText: string | null;
                    items: readonly Readonly<{
                        key: string;
                        title: string;
                        priceLabel: string;
                        quantity: number;
                        quantityEditable: boolean;
                    }>[];
                    subtotalLabel: string | null;
                    checkoutButtonText: string;
                    clearButtonText: string;
                }>;
                hydration: Readonly<{
                    emptyStateText: string;
                    checkoutButtonText: string;
                    clearButtonText: string;
                }>;
            }>>;
        }>;
    }>;
}>;
export declare const checkoutBlockRuntime: Readonly<{
    kind: "client-owned";
    buildRender: (source: ShopSourceProps) => Readonly<{
        display: Readonly<{
            kind: "checkout";
            state: "empty" | "blocked" | "ready";
            heading: string | null;
            className: string | null;
            message: string | null;
            submitButtonText: string;
        }>;
        hydration: Readonly<{
            emptyStateText: string;
            submitButtonText: string;
        }>;
    }>;
    contracts: Readonly<{
        source: Readonly<{
            encode: (value: ShopSourceProps) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<ShopSourceProps>;
        }>;
        render: Readonly<{
            encode: (value: Readonly<{
                display: Readonly<{
                    kind: "checkout";
                    state: "empty" | "blocked" | "ready";
                    heading: string | null;
                    className: string | null;
                    message: string | null;
                    submitButtonText: string;
                }>;
                hydration: Readonly<{
                    emptyStateText: string;
                    submitButtonText: string;
                }>;
            }>) => unknown;
            decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
                display: Readonly<{
                    kind: "checkout";
                    state: "empty" | "blocked" | "ready";
                    heading: string | null;
                    className: string | null;
                    message: string | null;
                    submitButtonText: string;
                }>;
                hydration: Readonly<{
                    emptyStateText: string;
                    submitButtonText: string;
                }>;
            }>>;
        }>;
    }>;
}>;
export declare const shopInteractiveIslandPropsCodec: Readonly<{
    encode: (value: Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "passes-memberships";
        } & Readonly<{
            display: Readonly<{
                kind: "passes-memberships";
                state: "empty" | "ready";
                className: string | null;
                layout: "grid" | "list";
                columns: string;
                emptyMessage: string;
                passesHeading: string;
                membershipsHeading: string;
                passes: readonly Readonly<{
                    id: string;
                    title: string;
                    description: string | null;
                    priceLabel: string;
                    creditsLabel: string;
                    perCreditLabel: string | null;
                    validityLabel: string | null;
                    actionLabel: string;
                }>[];
                memberships: readonly Readonly<{
                    id: string;
                    title: string;
                    description: string | null;
                    priceLabel: string;
                    intervalLabel: string;
                    actionLabel: string;
                }>[];
            }>;
            hydration: Readonly<{
                passes: readonly PublicPassProduct[];
                memberships: readonly PublicMembershipProduct[];
                passPurchaseMode: "add_to_cart" | "buy_now";
            }>;
        }>>;
    }>) => unknown;
    decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "passes-memberships";
        } & Readonly<{
            display: Readonly<{
                kind: "passes-memberships";
                state: "empty" | "ready";
                className: string | null;
                layout: "grid" | "list";
                columns: string;
                emptyMessage: string;
                passesHeading: string;
                membershipsHeading: string;
                passes: readonly Readonly<{
                    id: string;
                    title: string;
                    description: string | null;
                    priceLabel: string;
                    creditsLabel: string;
                    perCreditLabel: string | null;
                    validityLabel: string | null;
                    actionLabel: string;
                }>[];
                memberships: readonly Readonly<{
                    id: string;
                    title: string;
                    description: string | null;
                    priceLabel: string;
                    intervalLabel: string;
                    actionLabel: string;
                }>[];
            }>;
            hydration: Readonly<{
                passes: readonly PublicPassProduct[];
                memberships: readonly PublicMembershipProduct[];
                passPurchaseMode: "add_to_cart" | "buy_now";
            }>;
        }>>;
    }>>;
}>;
export declare const productListInteractiveIslandPropsCodec: Readonly<{
    encode: (value: Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "product-list";
        } & Readonly<{
            display: Readonly<{
                kind: "product-list";
                state: "empty" | "ready";
                heading: string | null;
                className: string | null;
                layout: "grid" | "list";
                columns: string;
                emptyMessage: string;
                cards: readonly Readonly<{
                    productId: string;
                    title: string;
                    path: string | null;
                    summary: string | null;
                    priceLabel: string | null;
                    badges: readonly string[];
                    image: Readonly<{
                        url: string;
                        alt: string | null;
                    }> | null;
                    variantOptions: readonly Readonly<{
                        id: string;
                        label: string;
                        soldOut: boolean;
                    }>[];
                    selectedVariantId: string | null;
                    selectionLabel: string;
                    actionLabel: string;
                    soldOut: boolean;
                }>[];
            }>;
            hydration: Readonly<{
                products: readonly PublicProduct[];
                showSummary: boolean;
                showBadges: boolean;
                showPrices: boolean;
                addButtonText: string;
            }>;
        }>>;
    }>) => unknown;
    decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "product-list";
        } & Readonly<{
            display: Readonly<{
                kind: "product-list";
                state: "empty" | "ready";
                heading: string | null;
                className: string | null;
                layout: "grid" | "list";
                columns: string;
                emptyMessage: string;
                cards: readonly Readonly<{
                    productId: string;
                    title: string;
                    path: string | null;
                    summary: string | null;
                    priceLabel: string | null;
                    badges: readonly string[];
                    image: Readonly<{
                        url: string;
                        alt: string | null;
                    }> | null;
                    variantOptions: readonly Readonly<{
                        id: string;
                        label: string;
                        soldOut: boolean;
                    }>[];
                    selectedVariantId: string | null;
                    selectionLabel: string;
                    actionLabel: string;
                    soldOut: boolean;
                }>[];
            }>;
            hydration: Readonly<{
                products: readonly PublicProduct[];
                showSummary: boolean;
                showBadges: boolean;
                showPrices: boolean;
                addButtonText: string;
            }>;
        }>>;
    }>>;
}>;
export declare const productDetailInteractiveIslandPropsCodec: Readonly<{
    encode: (value: Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "product-detail";
        } & Readonly<{
            display: ProductDetailDisplay;
            hydration: Readonly<{
                products: readonly PublicProduct[];
                productId: string | null;
                showSummary: boolean;
                showBadges: boolean;
                showBody: boolean;
                addButtonText: string;
            }>;
        }>>;
    }>) => unknown;
    decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "progressive";
        render: Readonly<{
            mode: "product-detail";
        } & Readonly<{
            display: ProductDetailDisplay;
            hydration: Readonly<{
                products: readonly PublicProduct[];
                productId: string | null;
                showSummary: boolean;
                showBadges: boolean;
                showBody: boolean;
                addButtonText: string;
            }>;
        }>>;
    }>>;
}>;
export declare const cartInteractiveIslandPropsCodec: Readonly<{
    encode: (value: Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "client-owned";
        render: Readonly<{
            mode: "cart";
        } & Readonly<{
            display: Readonly<{
                kind: "cart";
                state: "empty" | "ready";
                heading: string | null;
                className: string | null;
                emptyMessage: string;
                supportText: string | null;
                items: readonly Readonly<{
                    key: string;
                    title: string;
                    priceLabel: string;
                    quantity: number;
                    quantityEditable: boolean;
                }>[];
                subtotalLabel: string | null;
                checkoutButtonText: string;
                clearButtonText: string;
            }>;
            hydration: Readonly<{
                emptyStateText: string;
                checkoutButtonText: string;
                clearButtonText: string;
            }>;
        }>>;
    }>) => unknown;
    decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "client-owned";
        render: Readonly<{
            mode: "cart";
        } & Readonly<{
            display: Readonly<{
                kind: "cart";
                state: "empty" | "ready";
                heading: string | null;
                className: string | null;
                emptyMessage: string;
                supportText: string | null;
                items: readonly Readonly<{
                    key: string;
                    title: string;
                    priceLabel: string;
                    quantity: number;
                    quantityEditable: boolean;
                }>[];
                subtotalLabel: string | null;
                checkoutButtonText: string;
                clearButtonText: string;
            }>;
            hydration: Readonly<{
                emptyStateText: string;
                checkoutButtonText: string;
                clearButtonText: string;
            }>;
        }>>;
    }>>;
}>;
export declare const checkoutInteractiveIslandPropsCodec: Readonly<{
    encode: (value: Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "client-owned";
        render: Readonly<{
            mode: "checkout";
        } & Readonly<{
            display: Readonly<{
                kind: "checkout";
                state: "empty" | "blocked" | "ready";
                heading: string | null;
                className: string | null;
                message: string | null;
                submitButtonText: string;
            }>;
            hydration: Readonly<{
                emptyStateText: string;
                submitButtonText: string;
            }>;
        }>>;
    }>) => unknown;
    decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<Readonly<{
        siteId?: string;
        apiBaseUrl?: string;
        stage?: "preview" | "published";
    }> & {
        renderKind: "client-owned";
        render: Readonly<{
            mode: "checkout";
        } & Readonly<{
            display: Readonly<{
                kind: "checkout";
                state: "empty" | "blocked" | "ready";
                heading: string | null;
                className: string | null;
                message: string | null;
                submitButtonText: string;
            }>;
            hydration: Readonly<{
                emptyStateText: string;
                submitButtonText: string;
            }>;
        }>>;
    }>>;
}>;
export declare function buildShopInteractiveIslandProps(props: ShopSourceProps): ShopInteractiveIslandProps;
export declare function buildProductListInteractiveIslandProps(props: ShopSourceProps): ProductListInteractiveIslandProps;
export declare function buildProductDetailInteractiveIslandProps(props: ShopSourceProps): ProductDetailInteractiveIslandProps;
export declare function buildCartInteractiveIslandProps(props: ShopSourceProps): CartInteractiveIslandProps;
export declare function buildCheckoutInteractiveIslandProps(props: ShopSourceProps): CheckoutInteractiveIslandProps;
export declare function resolvePassBuyButtonText(buyButtonText: string | undefined, passPurchaseMode: ShopDisplayConfig['passPurchaseMode']): string;
export declare function getShopDisplayForItems(render: Extract<ShopInteractiveRender, {
    mode: 'cart';
}>, items: readonly CommerceCartItem[]): CartDisplay;
export declare function getShopDisplayForItems(render: Extract<ShopInteractiveRender, {
    mode: 'checkout';
}>, items: readonly CommerceCartItem[]): CheckoutDisplay;
