import type App from './index.js'; export declare enum SanitizeLevel { Plain = 0, Obscured = 1, Hidden = 2 } export interface Options { /** * Sanitize emails in text DOM nodes * * (for inputs, look for obscureInputEmails) * */ obscureTextEmails: boolean; /** * Sanitize emails in text DOM nodes * * (for inputs, look for obscureInputNumbers) * */ obscureTextNumbers: boolean; /** * Sanitize the DOM node based on the returned level * (Plain = 0, Obscured = 1, Hidden = 2) * * higher security levels will override other settings or data-params. * * @param node - the DOM node to sanitize * @returns the level of sanitization to apply * * */ domSanitizer?: (node: Element) => SanitizeLevel; /** * private by default mode that will mask all elements not marked by data-openreplay-unmask * */ privateMode?: boolean; } export declare const stringWiper: (input: string) => string; export default class Sanitizer { private readonly obscured; private readonly hidden; private readonly options; readonly privateMode: boolean; private readonly app; constructor(params: { app: App; options?: Partial; }); handleNode(id: number, parentID: number, node: Node): Set | undefined; sanitize(id: number, data: string): string; isObscured(id: number): boolean; isHidden(id: number): boolean; getInnerTextSecure(el: HTMLElement): string; clear(): void; }