import { Component } from "preact";
import { CartSystemProps } from "./cart-interfaces";
/**
 * Cart system component class
 * - is a section element
 * - takes as props a cart object, checkout machine, scroll tracker, etc
 * - contains CartButton and CartPanel components, mediates their relationship
 * - handles cart button click event to toggle cart panel open or closed
 * - handles cart system scroll tracking
 * - ultimately performs the checkout, using the cart panel checkout callback
 *   and checkout machine as tools
 * - takes a cart text object and distributes the text labels to child
 *   components
 */
export declare class CartSystem extends Component<CartSystemProps, any> {
    private disposers;
    private readonly scrollTracker;
    private readonly cartText;
    /**
     * Mount
     */
    componentWillMount(): void;
    /**
     * Unmount
     */
    componentWillUnmount(): void;
    /**
     * Perform checkout function
     * - call the checkout machine to obtain checkout url
     * - open the checkout url in a new window or same window
     */
    private readonly performCheckout;
    /**
     * Handle cart button click
     * - toggle the cart panel open or closed
     */
    private readonly handleCartButtonClick;
    /**
     * Render
     * - section element with scroll tracking
     * - contains cart button and cart panel
     */
    render(): JSX.Element;
}
