import { URL } from 'url';
import { AutoComplete } from './autocomplete';
export declare const PaymentType: {
    readonly FromCard: "AC";
    readonly FromWallet: "PC";
    /** @deprecated **Вариант игнорируется ЮMoney**. Используйте {@link PaymentType.FromCard} (`"AC"`) */
    readonly FromMobileBalance: "MC";
};
export type PaymentType = (typeof PaymentType)[keyof typeof PaymentType];
export declare const QuickPayForm: {
    readonly Button: "button";
};
export type QuickPayForm = (typeof QuickPayForm)[keyof typeof QuickPayForm];
export type FormConfig = {
    /**
     * Номер кошелька ЮMoney, на который нужно зачислять деньги отправителей.
     */
    receiver: string;
    /**
     * Возможные значения:
     *
     * `button` — единственное валидной значение;
     *
     * Остальные сохранены для обратной совместимости
     *
     *
     */
    quickPayForm?: AutoComplete<QuickPayForm>;
    /**
     * Назначение платежа. (До 150 символов)
     *
     * @deprecated **Поле игнорируется ЮMoney**
     */
    targets?: string;
    /**
     * Способ оплаты. Возможные значения:
     *
     * `PC` — оплата из кошелька ЮMoney;
     *
     * `AC` — с банковской карты;
     *
     */
    paymentType?: AutoComplete<PaymentType>;
    /**
     * Сумма перевода (спишется с отправителя).
     */
    sum: number;
    /**
     * Название перевода в истории отправителя (для переводов из кошелька или с привязанной карты). Отображается в кошельке отправителя.
     *
     * Удобнее всего формировать его из названий магазина и товара. Например: `Мой магазин: валенки белые`
     *
     * @deprecated **Поле игнорируется ЮMoney**
     */
    formComment?: string;
    /**
     * Название перевода на странице подтверждения. Рекомендуем делать его таким же, как `formComment`.
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     */
    shortDest?: string;
    /** Метка, которую сайт или приложение присваивает конкретному переводу. Например, в качестве метки можно указывать код или идентификатор заказа. (До 64 символов) */
    label?: string;
    /**
     * Поле, в котором можно передать комментарий отправителя перевода. (До 200 символов)
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     */
    comment?: string;
    /** URL-адрес для редиректа после совершения перевода. */
    successURL?: string;
    /**
     * Нужны ФИО отправителя.
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * */
    needFio?: boolean;
    /**
     *  Нужна электронная почты отправителя.
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     **/
    needEmail?: boolean;
    /**
     * Нужен телефон отправителя.
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * */
    needPhone?: boolean;
    /**
     * Нужен адрес отправителя.
     *
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * */
    needAddress?: boolean;
};
/**
 * Генерирует HTML формы для переводов
 * @class PaymentFormBuilder
 */
export declare class PaymentFormBuilder {
    readonly config: FormConfig;
    readonly url: string;
    /**
     *
     * Creates an instance of PaymentFormBuilder.
     * @param {FormConfig} [config={
     *   receiver: "",
     *   sum: 10,
     * }] Изначальные настройки формы
     */
    constructor(config?: FormConfig, url?: string);
    /**
     * Генерирует стандартные сеттеры
     *
     * @param {string} field
     * @return {Function}
     * @private
     */
    private _makeSetter;
    /**
     * Задаёт сумму платежа
     *
     * @alias {@link setSum}
     * @param {string | number} amount Сумма
     * @return {this}
     */
    setAmount(amount: number | string): this;
    /**
     * Задаёт сумму платежа
     *
     * @alias {@link setAmount}
     * @param {string | number} amount Сумма
     * @return {this}
     */
    setSum(amount: number | string): this;
    /**
     * Задаёт получателя платежа
     *
     * @param {string | number} receiver Получатель
     * @return {this}
     */
    setReceiver(receiver: number | string): this;
    /**
     * Задаёт URL перенаправления после успешного платежа
     *
     * @param {string | URL} url URL
     * @return {this}
     */
    setSuccessURL(url: string | URL): this;
    readonly setQuickPayForm: (value: AutoComplete<"button"> | undefined) => this;
    readonly setPaymentType: (value: AutoComplete<PaymentType> | undefined) => this;
    readonly setLabel: (value: string | undefined) => this;
    /** @deprecated **Поле игнорируется ЮMoney** */
    readonly setTargets: (value: string | undefined) => this;
    /** @deprecated **Поле игнорируется ЮMoney** */
    readonly setFormComment: (value: string | undefined) => this;
    /** @deprecated **Поле игнорируется ЮMoney** */
    readonly setShortDest: (value: string | undefined) => this;
    /** @deprecated **Поле игнорируется ЮMoney** */
    readonly setComment: (value: string | undefined) => this;
    /**
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * @param {boolean} [doRequire=true]
     * @return {this}
     */
    requireFio(doRequire?: boolean): this;
    /**
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * @param {boolean} [doRequire=true]
     * @return {this}
     */
    requireAddress(doRequire?: boolean): this;
    /**
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * @param {boolean} [doRequire=true]
     * @return {this}
     */
    requireEmail(doRequire?: boolean): this;
    /**
     * @deprecated **Поле игнорируется ЮMoney**
     *
     * @param {boolean} [doRequire=true]
     * @return {this}
     */
    requirePhone(doRequire?: boolean): this;
    /**
     * Генерирует HTML на основе заданных параметров
     * @param {boolean} [fullPage=false]
     * @return {string}
     */
    buildHtml(fullPage?: boolean): string;
}
