import { BpSdkStore, bindQuoteRequest, quoteActionBind, setFilteredOfflineQuotes, setFilteredOnlineQuotes, timeoutQuoteState } from '@boldpenguin/sdk-redux';
import { ApplicationFormStates, HandleActionBindFunction, HandleAttachmentDownloadFunction, HandleBindFunction, IAnalyticsTrackEventDetail, IConfigOptions, IPartnerEngineConfig, IQuoteRequestContainerComponent, IQuoteableCarriersProduct, IQuotesState, LoadingStates } from '@boldpenguin/sdk-types';
import { EventEmitter } from '../../stencil-public-runtime';
import { Unsubscribe } from '../../services/redux-store.service';
export declare class BpSdkQuoteRequestContainer implements IQuoteRequestContainerComponent {
    bpAnalyticsTrack: EventEmitter<IAnalyticsTrackEventDetail>;
    storeUnsubscribe?: Unsubscribe;
    bindQuoteRequest: typeof bindQuoteRequest;
    timeoutQuoteState: typeof timeoutQuoteState;
    quoteActionBind: typeof quoteActionBind;
    setFilteredOnlineQuotes: typeof setFilteredOnlineQuotes;
    setFilteredOfflineQuotes: typeof setFilteredOfflineQuotes;
    /**
     * Should show custom logo
     */
    showLogo: boolean;
    /**
     * Should show custom logo
     */
    showCustomLogo: boolean;
    /**
     * Custom logo base url
     *
     * If passed, it will expect a carrier logo to exist at the following URLs:
     *
     * ${baseUrl}${carrier?.name?.toLowerCase()}.png for carrier logos
     *
     * ${baseUrl}${this.quote.supplier_name.toLowerCase()}.png for supplier logos
     */
    customLogoBaseUrl: string;
    /**
     * Disable send to exchange button being rendered
     */
    disableSendToExchange: boolean;
    /**
     * Available online quotes on application form injected from redux
     */
    quotes: IQuotesState[];
    /**
     * Available offline quotes injected from redux
     */
    carriersProducts: IQuoteableCarriersProduct[];
    /**
     * Application form resource state
     */
    applicationFormResourceState: LoadingStates;
    /**
     * Available quotes on application form resource state
     */
    quotesResourceState: LoadingStates;
    /**
     * Application form state injected from redux
     */
    appFormState: ApplicationFormStates;
    /**
     * IPartnerEngineConfig injected from redux
     */
    config: IPartnerEngineConfig;
    /**
     * *Deprecated* Use applicationFormResourceState instead.
     *
     * Offline quotes resources loaded injected from redux
     */
    carriersProductsResourceState: LoadingStates;
    /**
     * Web component config options injected from redux
     */
    configOptions: IConfigOptions;
    /**
     * Timer in seconds to use for timing out quoting process
     */
    quoteTimeout: number;
    /**
     * Show all quotes irrespective of status.
     */
    showAllQuotes: boolean;
    /**
     * Optional custom function to sort online quotes, default is quotes are sorted by backend
     */
    quotesSortFn: (a: IQuotesState, b: IQuotesState) => number;
    /**
     * Optional custom function to sort online quotes, default is quotes are sorted by backend
     */
    offlineQuotesSortFn: (a: IQuoteableCarriersProduct, b: IQuoteableCarriersProduct) => number;
    /**
     * Optional array of carrier codes to display quotes, if provided quotes will only be shown by carriers in array.
     * If not provided, all carriers will be shown.
     */
    filteredCarrierCodes: string[];
    useExternal: boolean;
    isReady: boolean;
    showQuotePayment: boolean;
    filteredOnlineQuotes: IQuotesState[];
    filteredOfflineQuotes: IQuoteableCarriersProduct[];
    el: HTMLBpSdkQuoteRequestContainerElement;
    resetState(): void;
    handleSubscriptions: () => void;
    connectedCallback(): void;
    componentWillLoad(): void;
    mapStateToProps: (state: BpSdkStore) => {
        appFormState: ApplicationFormStates;
        applicationFormResourceState: LoadingStates;
        config: IPartnerEngineConfig;
        configOptions: IConfigOptions;
        carriersProducts: IQuoteableCarriersProduct[];
        carriersProductsResourceState: LoadingStates;
        quotes: IQuotesState[];
        quotesResourceState: LoadingStates;
    };
    disconnectedCallback(): void;
    onCarriersProductsChange(carriersProducts: IQuoteableCarriersProduct[]): void;
    onQuotesChange(quotes: IQuotesState[], oldQuotes: IQuotesState[]): void;
    handleQuoteTimeout: () => void;
    onApplicationResourceStateChange(newState: LoadingStates): void;
    onQuotesResourceStateChange(newState: LoadingStates, oldState?: LoadingStates): void;
    updateResource(applicationForm: LoadingStates, quotes: LoadingStates): void;
    handleBind: HandleBindFunction;
    handleQuoteActionBind: HandleActionBindFunction;
    handleDownload: HandleAttachmentDownloadFunction;
    isAppFormReadyToShowQuotes(): boolean;
    componentWillUpdate(): void;
    render(): any[];
    renderExternal(): any;
    renderQuotes: () => any[];
    renderQuotePayment(quote: IQuotesState): any;
    renderInternal(): any[];
}
