import { Locator } from '@playwright/test';
import type { Role } from '../../../utils/test-role-utils';
import type { BlockWithFormConfiguration } from '../BaseCard.types';
import type { ModalWindowConfiguration } from '../../common/Modal.types';
import type { FormFieldsLocators, FormFieldsData } from '../../BasePage/helpers/FormHelper/FormHelper.types';
interface BlockFormDeps {
    getRole: () => Role;
    validateBlockParams: (blockKey: string, role: Role) => void;
    getBlockTableLabel: (blockKey: string) => string;
    getBlockWithFormConfiguration: (blockKey: string, role: Role) => BlockWithFormConfiguration;
    getBlockButtons: (blockKey: string) => Record<string, Locator> | null;
    findBlockModalWindowConfig: (blockKey: string, modalWindowKey?: string) => ModalWindowConfiguration | undefined;
    getBlockModalWindowFormLocators: (blockKey: string, modalWindowKey?: string) => FormFieldsLocators;
    getBlockModalWindowButtons: (blockKey: string, modalWindowKey?: string) => Record<string, Locator> | null;
    performModalTerminalActionToCloseModalWindow: (button: Locator, body: Locator, stepName: string) => Promise<void>;
    verifyTableRowInBlock: (rowKey: string, rowData: Record<string, string>, tableLabel: string, isNewlyAdded: boolean, onRowFound?: (row: Locator) => void) => Promise<void>;
    openBlockModalWindow: (triggerButton: Locator, body: Locator) => Promise<void>;
    formHelperFillFormFields: (data: {
        textFieldsData?: Record<string, string>;
        comboboxFieldsData?: Record<string, string | {
            inputValue: string;
            selectValue: string;
        }>;
        fileFieldsData?: Record<string, string>;
        radioButtonsData?: string[];
        checkboxesData?: Record<string, boolean>;
        toggleButtonsData?: Record<string, boolean | 'Yes' | 'No'>;
        daDataFieldsData?: Record<string, {
            inputValue: string;
            selectValue: string;
            expectedValue?: string;
        }>;
        multiComboboxFieldsData?: Record<string, {
            inputValue: string;
            selectValue: string;
        }[]>;
    }, locators: FormFieldsLocators, context: string) => Promise<void>;
    getBlockFormWithInputsLocators: (blockKey: string) => FormFieldsLocators;
    tryFindErrorMessage: () => Promise<string[] | void>;
}
export interface BlockFormFieldsValues {
    textFields?: Record<string, string>;
    comboboxFields?: Record<string, string>;
    fileFields?: Record<string, string>;
    radioButtons?: string[];
    checkboxes?: Record<string, boolean>;
    toggleButtons?: Record<string, boolean | 'Yes' | 'No'>;
    daDataFields?: Record<string, string>;
    multiComboboxFields?: Record<string, string[]>;
}
export declare class CardBlockFormService {
    private readonly deps;
    constructor(deps: BlockFormDeps);
    private validateParams;
    private filterFormFields;
    private getCurrentBlockState;
    private verifyBlockButtonsState;
    private openAndFillModal;
    private fillBlockForm;
    switchBlockEditableState(blockKey: string, targetState: 'editable' | 'notEditable', buttonKeys?: {
        Edit?: string;
        Save?: string;
        Cancel?: string;
    }, logContext?: string): Promise<void>;
    checkFormFieldsState(blockConfig: BlockWithFormConfiguration, blockFormLocators: FormFieldsLocators, mode: 'editable' | 'notEditable'): Promise<void>;
    fillFormAndAddRowInBlock(blockKey: string, triggerButtonKey: string, rowKey: string, expectedRowData: Record<string, string>, isFirstRow: boolean, saveButtonKey: string, modalWindowKey: string | undefined, formFields: FormFieldsData, logContext?: string, onRowVerified?: (row: Locator) => void): Promise<void>;
    fillInlineBlockForm(blockKey: string, formFields: FormFieldsData, logContext?: string): Promise<void>;
    checkInlineBlockFormValues(blockKey: string, expectedFieldsValues: BlockFormFieldsValues, logContext?: string): Promise<void>;
}
export {};
