/**
 * D-1 — auto-identify-or-alias on email entry.
 *
 * Listens for `change` events on email-typed inputs anywhere on the page.
 * When a well-formed, non-denylisted email is detected:
 *   - If the current distinct_id is anonymous (PostHog UUID): identify(email)
 *   - If the current distinct_id is a different email: alias(email)
 *   - If the same email was already seen this session: no-op
 *
 * Per-element opt-out via `data-syntro-no-identify` on the input or a
 * parent form.
 *
 * Consent: when a ConsentGate is provided, the actual identify/alias
 * call is gated on the gate's resolved status. Listener is always
 * installed; the call only fires if the gate is (or resolves to) granted.
 *
 * See docs/plans/current/2026-05-04-sdk-default-instrumentation-spec.md (D-1).
 */
import type { ConsentGate } from '../telemetry/consent';
import type { TelemetryClient } from '../telemetry/types';
export declare function isValidEmail(value: string): boolean;
export declare function isEmailDenylisted(value: string): boolean;
export declare function installEmailIdentifyListener(telemetry: TelemetryClient, consentGate?: ConsentGate): () => void;
