import { type CommerceCartState } from './shop-commerce.shared';
declare class CommerceCartStore {
    private readonly siteId;
    private state;
    private listeners;
    constructor(siteId: string);
    subscribe(listener: () => void): () => void;
    getSnapshot(): CommerceCartState;
    addProduct(input: Readonly<{
        key: string;
        productId: string;
        variantId?: string | null;
        title: string;
        variantTitle?: string | null;
        quantity?: number;
        unitPriceCents: number;
        currency: string;
        imageUrl?: string | null;
        soldOut?: boolean;
    }>): void;
    addPass(input: Readonly<{
        passId: string;
        title: string;
        unitPriceCents: number;
        currency: string;
    }>): void;
    updateQuantity(itemKey: string, quantity: number): void;
    removeItem(itemKey: string): void;
    clear(): void;
    private setState;
}
export declare function addProductToCommerceCart(siteId: string | undefined, input: Parameters<CommerceCartStore['addProduct']>[0]): void;
export declare function addPassToCommerceCart(siteId: string | undefined, input: Parameters<CommerceCartStore['addPass']>[0]): void;
export declare function useCommerceCart(siteId: string | undefined): {
    items: import("./shop-commerce.shared").CommerceCartItem[];
    addProduct: (input: Readonly<{
        key: string;
        productId: string;
        variantId?: string | null;
        title: string;
        variantTitle?: string | null;
        quantity?: number;
        unitPriceCents: number;
        currency: string;
        imageUrl?: string | null;
        soldOut?: boolean;
    }>) => void;
    addPass: (input: Readonly<{
        passId: string;
        title: string;
        unitPriceCents: number;
        currency: string;
    }>) => void;
    updateQuantity: (itemKey: string, quantity: number) => void;
    removeItem: (itemKey: string) => void;
    clear: () => void;
};
export {};
