import { Product, Package, ProductWithParent } from '../';
import { Addon, AddonKey } from '@vendasta/core/marketplace-packages';
export interface SalesPackage {
    formattedPrices: string;
    packageId: string;
    name: string;
    icon: string;
    productIds: string[];
    products: SalesProduct[];
    addonsWithNoParent: SalesAddon[];
    totalAddons: number;
    activationStatus?: StatusNotificationItem;
}
export interface SalesProduct {
    formattedPrices: string;
    productId: string;
    name: string;
    icon: string;
    tagline: string;
    activationStatus?: StatusNotificationItem;
    editionId?: string;
    editionName?: string;
    addons: SalesAddon[];
    parentInfo?: ProductParentInfo;
}
export interface ProductParentInfo {
    parentId: string;
    parentName: string;
    parentIconUrl: string;
    multipleActivations: boolean;
}
export interface SalesAddon {
    parentId: string;
    addonId: string;
    name: string;
    icon: string;
    tagline: string;
    parentName: string;
    parentIcon: string;
    multipleActivations: boolean;
    activationStatus?: StatusNotificationItem;
}
export interface PackageItemActivationStatus {
    packageItemId: string;
    status: ActivationStatus;
}
export declare enum ActivationStatus {
    SUCCESS = 0,
    WARNING = 1,
    ERROR = 2
}
export interface StatusNotificationItem {
    icon: string;
    text: string;
    status: ActivationStatus;
}
export declare function buildSalesPackages(packages: Package[], products: Product[], addons: Addon[]): SalesPackage[];
export declare function buildSalesProducts(pkg: Package, products: Product[], addons: Addon[]): SalesProduct[];
export declare function coerceAddonsForAddonKeys(addons: Addon[], addonKeys: AddonKey[]): Addon[];
export declare function buildSalesAddonsWithNoParent(pkg: Package, products: Product[], addons: Addon[]): SalesAddon[];
export declare function buildSalesProductFromProduct(product: Product | ProductWithParent, addons: Addon[]): SalesProduct;
export declare function addStatusesToSalesPackages(salesPackages: SalesPackage[], statuses: PackageItemActivationStatus[]): SalesPackage[];
export declare function addStatusesToSalesProduct(product: SalesProduct, statuses: PackageItemActivationStatus[]): SalesProduct;
