import type { MeldQuote } from '@funkit/api-base';
import React from 'react';
import type { ErrorNotification } from '../../../components/FunNotification/FunNotification';
import { FunCheckoutStep, type NextPayload } from '../stepTransition';
export declare function useMeldUI({ meldEnabled, manuallySelectedQuote, fiatAmount, fiatCurrency, onNext, }: {
    meldEnabled: boolean;
    manuallySelectedQuote: MeldQuote | undefined;
    fiatAmount: number | undefined;
    fiatCurrency: string | undefined;
    onNext: (data: NextPayload<FunCheckoutStep.INPUT_AMOUNT>) => void;
}): {
    getMeldFooter: () => React.JSX.Element;
    handleMeldContinue: () => Promise<void>;
    isMeldContinueDisabled: boolean | undefined;
    isMeldLinkPending: boolean;
    getMeldError: () => ErrorNotification | undefined;
};
export declare function useMeld(meldEnabled: boolean, manuallySelectedQuote: MeldQuote | undefined, usdAmount: number | undefined, fiatCurrency: string | undefined): {
    meldQuotesQuery: import("@tanstack/react-query").UseQueryResult<MeldQuote[]> & {
        isOutdated: boolean;
    };
    mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@funkit/api-base").MeldCreateCryptoWidgetResponse, Error, import("@funkit/api-base").MeldServiceProvider, unknown>;
    isMeldLinkPending: boolean;
    meldLimitError: {
        issue: string;
        suggestion: string;
    } | undefined;
    bestRateQuote: MeldQuote | undefined;
    selectedQuote: MeldQuote | undefined;
    isSelectedQuoteUnavailable: boolean | undefined;
    isMeldContinueDisabled: boolean | undefined;
    getMeldError: () => ErrorNotification | undefined;
};
export declare function openMeldPopup(linkGetter: () => Promise<{
    widgetUrl: string;
}>): Promise<boolean>;
