import { Locator, Page } from "@playwright/test";
import { FormFieldsData, FormFieldsLocators } from "./FormHelper.types";
export type { FormFieldsData, FormFieldsLocators } from "./FormHelper.types";
export declare class FormHelper {
    private page;
    constructor(page: Page);
    /**
   * Заполняет поле ввода значением
   * @param textField - Локатор текстового поля
   * @param value - значение для заполнения
   */
    fillTextField(textField: Locator, value: string): Promise<void>;
    /**
   * Выбирает значение в combobox поле
   * @param comboboxField - локатор combobox поля
   * @param inputValue - значение для ввода в поле поиска
   * @param selectValue - текст элемента для выбора из списка (В случае, если не передан, используется значение inputValue)
   */
    selectOptionInCombobox(comboboxField: Locator, inputValue: string, selectValue?: string): Promise<void>;
    /**
   * Выбирает значения в multi-combobox поле
   * @param multiComboboxField - локатор combobox поля
   * @param options - массив значений для выбора
   */
    selectOptionsInMultiCombobox(multiComboboxField: Locator, options: {
        inputValue: string;
        selectValue: string;
    }[]): Promise<void>;
    /**
   * Заполняет поле DaData: вводит значение, ждет появления списка и выбирает элемент по тексту
   * @param daDataField - локатор поля DaData
   * @param inputValue - значение для ввода в поле
   * @param selectValue - текст элемента для выбора из списка
   * @param expectedValue - ожидаемое значение в поле после ввода
   */
    fillDaDataField(daDataField: Locator, inputValue: string, selectValue: string, expectedValue?: string): Promise<void>;
    /**
   * Установка toggle button в заданное состояние
   * @param toggleButtonName - имя toggle button
   * @param desiredState - желаемое состояние (boolean или 'Yes' | 'No')
   */
    setToggleButton(toggleButtonName: string, desiredState: boolean | 'Yes' | 'No'): Promise<void>;
    /**
     * Установка чекбоксов в заданное состояние
     * Проверяет текущее состояние и кликает только если нужно изменить
     * @param checkboxes - Record с локаторами чекбоксов
     * @param checkboxStates - Record с желаемыми состояниями чекбоксов (ключ -> true/false)
     */
    setCheckboxesState(checkboxes: Record<string, Locator>, checkboxStates: Record<string, boolean>): Promise<void>;
    chooseRadioButtons(radioButtons: Record<string, Locator>, radioButtonKeys: string[]): Promise<void>;
    /**
    * Загружает файл в поле для загрузки файлов
    * Механика: нажимается кнопка "Выбрать" и затем выбирается файл через диалог выбора файла
    * @param fileField - селектор кнопки "Выбрать" или Locator (может быть label, button или скрытый input)
    * @param filePath - путь к файлу (может быть относительным от resources/files или абсолютным)
    */
    uploadFile(fileField: string | Locator, filePath: string): Promise<void>;
    /**
    * Универсальный метод для заполнения всех типов полей формы
    * @param data - данные для заполнения полей
    * @param locators - локаторы полей формы
    * @param context - контекст для логирования
    */
    fillFormFields(data: FormFieldsData, locators: FormFieldsLocators, context?: string): Promise<void>;
}
