import { Page, Locator } from '@playwright/test';
import { BasePage } from './BasePage/BasePage';
export type UserRole = 'Admin' | 'Agent' | 'Bank' | 'Client';
/**
 * Конфигурация элементов грида для конкретной роли
 */
export interface ArchiveConfiguration {
    buttons: string[];
    input: string;
    listItem: string[];
    columns: string[];
    notVisibleListItems: string[];
    listItemWithInput: string[];
    gridBody: Locator;
}
export declare abstract class BaseArchivePage extends BasePage {
    abstract GridButtons: Record<string, Locator>;
    abstract GridInputs: Record<string, Locator>;
    abstract GridColumns: Record<string, Locator>;
    abstract PageListItems: Record<string, Locator>;
    abstract GridBody: Locator;
    constructor(page: Page);
    /**
     * Абстрактный метод для получения конфигурации элементов грида в зависимости от роли
     * Должен быть реализован в наследниках с учетом специфики каждой страницы с гридом
     */
    abstract getArchiveConfiguration(role: UserRole): ArchiveConfiguration;
    /**
     * Совокупная проверка содержания грида для элемента списка
     */
    checkArchiveListItems(role: UserRole): Promise<void>;
    /**
     * Проверяет видимость кнопок грида в зависимости от роли
     */
    checkGridButtons(role: UserRole): Promise<void>;
    /**
     * Проверяет видимость колонок грида в зависимости от роли
     */
    checkGridColumns(role: UserRole): Promise<void>;
    /**
    * Проверяем кейс, что грид не содержит сообщение об отсутствии данных
    */
    checkGridHaveCells(role: UserRole): Promise<void>;
    /**
     * Проверяет все элементы грида (кнопки, поля, колонки) в зависимости от роли
     */
    checkAllGridElements(role: UserRole): Promise<void>;
}
