import * as react_jsx_runtime from 'react/jsx-runtime';
import * as _exxatdesignux_product_framework from '@exxatdesignux/product-framework';
import * as React from 'react';
import { Product, CustomProductBrand } from '@exxatdesignux/product-framework/app-store';
export { Product } from '@exxatdesignux/product-framework/app-store';

/** Re-read the Zustand store and push product chrome onto `<html>`. */
declare function syncActiveProductThemeFromStore(pathname?: string): void;

declare function useProduct(): {
    product: Product;
    setProduct: (product: Product) => void;
    customProducts: CustomProductBrand[];
    activeCustomIndex: number;
    customProductBrand: CustomProductBrand | null;
    addCustomProduct: (brand: CustomProductBrand) => number;
    updateCustomProduct: (index: number, brand: CustomProductBrand) => void;
    removeCustomProduct: (index: number) => void;
    setActiveCustomIndex: (index: number) => void;
    setCustomProducts: (products: CustomProductBrand[]) => void;
    productBrandColors: Partial<Record<Product, string>>;
    setProductBrandColor: (product: Product, color: string | null) => void;
    hiddenProducts: _exxatdesignux_product_framework.ProductRef[];
    hideProduct: (ref: _exxatdesignux_product_framework.ProductRef) => void;
    showProduct: (ref: _exxatdesignux_product_framework.ProductRef) => void;
    startupProduct: _exxatdesignux_product_framework.ProductRef | null;
    setStartupProduct: (ref: _exxatdesignux_product_framework.ProductRef | null) => void;
};
type ProductProviderProps = {
    children: React.ReactNode;
    /**
     * **Builder vs end user** in production deploys.
     * Wire from auth, e.g. `authoring={session.roles.includes("workspace_builder")}`.
     * Omit to use dev / env defaults only.
     */
    authoring?: boolean;
};
declare function ProductProvider({ children, authoring }: ProductProviderProps): react_jsx_runtime.JSX.Element;

export { ProductProvider, type ProductProviderProps, syncActiveProductThemeFromStore, useProduct };
