import { Locator, Page } from '@playwright/test';
/**
 * Privacy tab helpers — Playwright bindings for the `AgentPrivacyTab`
 * component from `@iblai/web-containers`.
 *
 * All UI strings below mirror `AGENT_PRIVACY_TAB_LABELS` from
 * `@iblai/web-containers/next`. If a consumer renames a label via the
 * `labels` prop, override these constants per spec — don't edit this file.
 *
 * The helpers assume the Edit Mentor dialog is already open. Call
 * `switchToPrivacyTab(page)` first; from then on, every helper accepts
 * either the `Page` or the dialog `Locator`.
 */
export declare const PRIVACY_LABELS: {
    readonly tabName: "Privacy";
    readonly headerTitle: "Privacy";
    readonly routerLabel: "Enable Privacy Router";
    readonly actionLabel: "When PII is detected";
    readonly blockMessageLabel: "Block Message";
    readonly entitiesLabel: "Entity Types";
    readonly outputFilterLabel: "Also filter AI responses";
    readonly entitiesEmptyHint: "Using defaults.";
    readonly actionOptions: {
        readonly redact: "Redact";
        readonly mask: "Mask";
        readonly block: "Block";
    };
    readonly entityChips: {
        readonly PERSON: "Person";
        readonly EMAIL_ADDRESS: "Email";
        readonly PHONE_NUMBER: "Phone";
        readonly US_SSN: "SSN";
        readonly CREDIT_CARD: "Credit Card";
        readonly LOCATION: "Location";
        readonly DATE_TIME: "Date / Time";
        readonly US_PASSPORT: "Passport";
        readonly US_DRIVER_LICENSE: "Driver's License";
        readonly IP_ADDRESS: "IP Address";
        readonly IBAN_CODE: "IBAN";
        readonly MEDICAL_LICENSE: "Medical License";
        readonly US_BANK_NUMBER: "Bank Number";
    };
};
export type PrivacyAction = keyof typeof PRIVACY_LABELS.actionOptions;
export type PrivacyEntity = keyof typeof PRIVACY_LABELS.entityChips;
/**
 * Check whether the Privacy tab is currently rendered in the Edit Mentor
 * dialog. Returns false instead of throwing so consumers can guard
 * conditionally rendered tabs.
 */
export declare function isPrivacyTabVisible(page: Page): Promise<boolean>;
/**
 * Switch to the Privacy tab. Assumes the Edit Mentor dialog is open.
 */
export declare function switchToPrivacyTab(page: Page): Promise<void>;
/**
 * Locator for the master privacy-router switch.
 */
export declare function getPrivacyRouterSwitch(scope: Page | Locator): Locator;
/**
 * Click the master toggle until it matches the desired state.
 */
export declare function setPrivacyRouterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
export declare function expectPrivacyRouterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
/**
 * Assert that all dependent privacy fields are hidden — the case when the
 * master toggle is off.
 */
export declare function expectPrivacyFieldsHidden(scope: Page | Locator): Promise<void>;
/**
 * Assert that the action selector, entities, and output filter are visible —
 * the case when the master toggle is on.
 */
export declare function expectPrivacyFieldsVisible(scope: Page | Locator): Promise<void>;
/**
 * Pick a value in the "When PII is detected" select. The block-message
 * textarea will appear / disappear automatically based on the selection.
 */
export declare function selectPrivacyAction(scope: Page | Locator, action: PrivacyAction): Promise<void>;
/**
 * Type a custom block message and commit it. The field saves on blur, so
 * this helper blurs the textarea after typing.
 */
export declare function setBlockMessage(scope: Page | Locator, text: string): Promise<void>;
/**
 * Locator for a single entity chip. Chips are buttons with
 * `role="checkbox"` and an `aria-label` matching the user-facing chip text.
 */
export declare function getEntityChip(scope: Page | Locator, entity: PrivacyEntity): Locator;
/**
 * Toggle an entity chip until it matches the desired selected state.
 */
export declare function setEntitySelected(scope: Page | Locator, entity: PrivacyEntity, selected: boolean): Promise<void>;
export declare function expectEntitySelected(scope: Page | Locator, entity: PrivacyEntity, selected: boolean): Promise<void>;
/**
 * Locator for the "Also filter AI responses" switch.
 */
export declare function getOutputFilterSwitch(scope: Page | Locator): Locator;
export declare function setOutputFilterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
export declare function expectOutputFilterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
