import { Page, Locator } from '@playwright/test';
import { FormHelper } from './helpers/FormHelper/FormHelper';
import { RowActionsHelper } from './helpers/RowActionsHelper/RowActionsHelper';
import type { CommonModalWindowButtons, OrgCoreTextFields, UserCoreTextFields } from './BasePage.types';
import { CertificateHelper } from './helpers/CertificateHelper';
import { RowActionsOrchestrator } from '../shared/RowActionsOrchestrator';
import { TextUtils } from './utils/TextUtils';
import { Role } from '../../utils/test-role-utils';
import { UiNotificationService } from '../shared/notifications/UiNotificationService';
import { ModalWindowService } from '../shared/modal/ModalWindowService';
import { VisibilityChecker } from '../shared/visibility/VisibilityChecker';
export type { CommonModalWindowButtons, OrgCoreTextFields, UserCoreTextFields } from './BasePage.types';
export declare class BasePage {
    protected page: Page;
    protected modalDialog: Locator;
    protected commonModalWindowButtons: CommonModalWindowButtons;
    protected orgCoreTextFields: OrgCoreTextFields;
    protected userCoreTextFields: UserCoreTextFields;
    protected readonly formHelper: FormHelper;
    protected readonly rowActionsHelper: RowActionsHelper;
    protected readonly rowActionsOrchestrator: RowActionsOrchestrator;
    protected readonly certificateHelper: CertificateHelper;
    protected readonly textUtils: TextUtils;
    protected readonly uiNotifications: UiNotificationService;
    protected readonly modalWindowService: ModalWindowService;
    protected readonly visibilityChecker: VisibilityChecker;
    protected role?: Role;
    constructor(page: Page);
    setRole(role: Role): void;
    protected getRoleOrThrow(): Role;
    getCommonModalWindowButtons(): CommonModalWindowButtons;
    getModalDialog(): Locator;
    getOrgCoreTextFields(): OrgCoreTextFields;
    getUserCoreTextFields(): UserCoreTextFields;
    goto(path: string): Promise<void>;
    reloadPage(): Promise<void>;
    scrollToElement(locator: Locator): Promise<void>;
    /**
     * Выполняет действие; после завершения и при ошибке проверяет toast-уведомления UI.
     * @param actionDescription — описание действия в предложном падеже, например «сохранении блока X»
     * @param action — шаги, которые могут завершиться ошибкой
     * @returns результат выполнения `action`
     */
    protected executeWithErrorCheck<T>(actionDescription: string, action: () => Promise<T>): Promise<T>;
    assertNoErrorMessages(): Promise<void>;
    performModalTerminalActionToCloseModalWindow(terminalButton: Locator, stepName?: string, haveNextStep?: boolean): Promise<void>;
    confirmAction(haveNextStep?: boolean): Promise<void>;
    checkPageTitle(title: string): Promise<void>;
    checkSuccessMessage(message: string): Promise<void>;
}
