import { OnChanges, SimpleChanges } from '@angular/core';
import { BilledProduct, PricingTier } from '@vendasta/billing';
import { MarketplaceBillingFrequency, DisplayPriceService } from '@vendasta/core/shared';
import { Pricing, Price } from './pricing';
import { BehaviorSubject, Observable } from 'rxjs';
import { TranslateService } from '@ngx-translate/core';
import { Discount, DiscountService } from '@vendasta/billing';
import * as i0 from "@angular/core";
export declare class VaBasePricingComponent implements OnChanges {
    private translateService;
    private displayPriceService;
    readonly partnerId$: Observable<string>;
    private discountService;
    pricing: Pricing;
    billedProduct: BilledProduct;
    wrapFrequency: boolean;
    isAddon: boolean;
    hasVerifiedContract: boolean;
    highlightPrice: boolean;
    loaded: boolean;
    showAllPrices: boolean;
    useAbbreviatedFrequency: boolean;
    showIsStartingAt: boolean;
    pricing$$: BehaviorSubject<Pricing>;
    billedProduct$$: BehaviorSubject<BilledProduct>;
    hasVerifiedContract$$: BehaviorSubject<boolean>;
    isFree$: Observable<boolean>;
    shouldContactSales$: Observable<boolean>;
    isFlatPrice$: Observable<boolean>;
    pricingTierData$: Observable<{
        isStartingPrice: boolean;
        pricingTierString: string;
        pricingTierForProduct: string;
        pricingTierForAddon: string;
        priceStringForTier: string;
        priceStringForTierWithoutFreq: string;
    }[]>;
    priceData$: Observable<{
        isStartingPrice: boolean;
        priceStringForPricingWithoutFrequency: string;
        priceStringForPricingWithFrequency: string;
        frequencyString: string;
        abbreviatedFrequencyString: string;
    }[]>;
    commitmentMessage$: Observable<string>;
    setupFeeString$: Observable<string>;
    isFirstTierFree$: Observable<boolean>;
    showPricingPopover: boolean;
    discounts$: Observable<Discount[]>;
    get pricing$(): Observable<Pricing>;
    get billedProduct$(): Observable<BilledProduct>;
    get hasVerifiedContract$(): Observable<boolean>;
    constructor(translateService: TranslateService, displayPriceService: DisplayPriceService, partnerId$: Observable<string>, discountService: DiscountService);
    ngOnChanges(changes: SimpleChanges): void;
    buildPricingTierString(tier: PricingTier): Observable<string>;
    buildPricingTierForProduct(tier: PricingTier, frequency?: string): Observable<string>;
    buildPricingTierForAddon(tier: PricingTier): Observable<string>;
    sortPricesByFrequency(priceA: Price, priceB: Price): number;
    buildPriceStringForPricing(price: Price, currency: string, excludeFrequency: boolean, canIncludeStartingAtPrefix: boolean): Observable<string>;
    buildPriceStringForTier(tier: PricingTier, frequency?: MarketplaceBillingFrequency, isStartingPrice?: boolean): Observable<string>;
    buildFrequencyString(frequency?: string): Observable<string>;
    buildAbbreviatedFrequencyString(frequency?: string): string;
    buildCommitmentMessage(): Observable<string>;
    private fetchAllDiscounts;
    private getDiscounts;
    itemInfoIconEnter(): void;
    itemInfoIconLeave(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<VaBasePricingComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VaBasePricingComponent, "app-base-pricing", never, { "pricing": "pricing"; "billedProduct": "billedProduct"; "wrapFrequency": "wrapFrequency"; "isAddon": "isAddon"; "hasVerifiedContract": "hasVerifiedContract"; "highlightPrice": "highlightPrice"; "loaded": "loaded"; "showAllPrices": "showAllPrices"; "useAbbreviatedFrequency": "useAbbreviatedFrequency"; "showIsStartingAt": "showIsStartingAt"; }, {}, never, never>;
}
