import { Page } from '@playwright/test';
/**
 * Navigate to the Audit tab within the Analytics section.
 * Assumes the user is already on the analytics page (any tab).
 */
export declare function navigateToAuditLog(page: Page): Promise<void>;
/**
 * Verify the audit log table is visible with correct headers.
 */
export declare function verifyAuditLogTableVisible(page: Page): Promise<void>;
/**
 * Get the number of rows currently displayed in the audit log table.
 * Returns 0 if no table body rows are found.
 */
export declare function getAuditLogRowCount(page: Page): Promise<number>;
/**
 * Verify that audit log entries contain expected data structure
 * (person name in first cell, action description in second, timestamp in third).
 */
export declare function verifyAuditLogEntryStructure(page: Page): Promise<void>;
/**
 * Verify the empty state is displayed when there are no audit log entries.
 */
export declare function verifyAuditLogEmptyState(page: Page): Promise<void>;
/**
 * Verify the 403 permission error state is displayed.
 */
export declare function verifyAuditLogPermissionError(page: Page): Promise<void>;
/**
 * Verify the generic error state is displayed.
 */
export declare function verifyAuditLogGenericError(page: Page): Promise<void>;
/**
 * Verify the loading spinner is displayed while audit logs are being fetched.
 */
export declare function verifyAuditLogLoading(page: Page): Promise<void>;
/**
 * Wait for the audit log data to finish loading.
 * Waits for either table data, empty state, or error state to appear.
 */
export declare function waitForAuditLogDataLoaded(page: Page, timeout?: number): Promise<void>;
/**
 * Filter audit log entries by action type.
 * @param action - One of 'All Actions', 'Create', 'Update', or 'Delete'
 */
export declare function filterByAction(page: Page, action: 'All Actions' | 'Create' | 'Update' | 'Delete'): Promise<void>;
/**
 * Filter audit log entries by actor/person using the search combobox.
 * @param actorName - The username to filter by, or empty string to clear the filter
 */
export declare function filterByActor(page: Page, actorName: string): Promise<void>;
/**
 * Get the list of actors available in the actor filter dropdown.
 * Opens the dropdown, reads the options, then closes it.
 */
export declare function getAvailableActors(page: Page): Promise<string[]>;
/**
 * Open the date range picker and select a date range.
 * @param fromDate - Start date to select
 * @param toDate - End date to select
 */
export declare function filterByDateRange(page: Page, fromDate: Date, toDate: Date): Promise<void>;
/**
 * Clear the date range filter by clicking the date picker and resetting.
 */
export declare function clearDateRangeFilter(page: Page): Promise<void>;
/**
 * Get the current pagination info text (e.g., "Showing 1 to 20 of 45 results").
 * Returns null if pagination is not visible.
 */
export declare function getPaginationInfo(page: Page): Promise<string | null>;
/**
 * Navigate to the next page of audit log results.
 */
export declare function goToNextPage(page: Page): Promise<void>;
/**
 * Navigate to the previous page of audit log results.
 */
export declare function goToPreviousPage(page: Page): Promise<void>;
/**
 * Navigate to the first page of audit log results.
 */
export declare function goToFirstPage(page: Page): Promise<void>;
/**
 * Navigate to the last page of audit log results.
 * Finds the highest numbered page link in the pagination.
 */
export declare function goToLastPage(page: Page): Promise<void>;
/**
 * Navigate to a specific page number by clicking its page button.
 */
export declare function goToPage(page: Page, pageNumber: number): Promise<void>;
/**
 * Verify the current page is highlighted/active in pagination.
 */
export declare function verifyCurrentPage(page: Page, expectedPage: number): Promise<void>;
/**
 * Check if the next page button is disabled (i.e., we're on the last page).
 */
export declare function isOnLastPage(page: Page): Promise<boolean>;
/**
 * Check if the previous page button is disabled (i.e., we're on the first page).
 */
export declare function isOnFirstPage(page: Page): Promise<boolean>;
/**
 * Full workflow: Navigate to audit log tab, wait for data to load,
 * and verify the table is visible. Use this as a test setup helper.
 */
export declare function navigateToAuditLogAndWaitForData(page: Page): Promise<void>;
/**
 * Verify audit log entries are displayed after applying action filter.
 * Returns the row count after filtering.
 */
export declare function filterByActionAndVerify(page: Page, action: 'All Actions' | 'Create' | 'Update' | 'Delete'): Promise<number>;
/**
 * Verify audit log entries are displayed after applying actor filter.
 * Returns the row count after filtering.
 */
export declare function filterByActorAndVerify(page: Page, actorName: string): Promise<number>;
