import type { Client, Extension } from '@posthog/browser-common';
import RageClick from './extensions/rageclick';
import { Properties, RemoteConfigResult } from './types';
import type { AutocaptureConfigSource } from './autocapture-config';
export declare function getAugmentPropertiesFromElement(elem: Element): Properties;
export declare function previousElementSibling(el: Element): Element | null;
export declare function getDefaultProperties(eventType: string): Properties;
export declare function getPropertiesFromElement(elem: Element, maskAllAttributes: boolean, maskText: boolean, elementAttributeIgnorelist: string[] | undefined, disableCaptureUrlHashes?: boolean): Properties;
export declare function autocapturePropertiesForElement(target: Element, { e, maskAllElementAttributes, maskAllText, elementAttributeIgnoreList, elementsChainAsString, disableCaptureUrlHashes, }: {
    e: Event;
    maskAllElementAttributes: boolean;
    maskAllText: boolean;
    elementAttributeIgnoreList?: string[] | undefined;
    elementsChainAsString: boolean;
    disableCaptureUrlHashes: boolean;
}): {
    props: Properties;
    explicitNoCapture?: boolean;
};
export declare class Autocapture implements Extension {
    private readonly _configSource;
    readonly name: import("@posthog/browser-common").ExtensionToken<Autocapture>;
    _initialized: boolean;
    _isDisabledServerSide: boolean | null;
    _hasReceivedConfigResponse: boolean;
    _elementSelectors: Set<string> | null;
    rageclicks: RageClick;
    _elementsChainAsString: boolean;
    private _client?;
    private readonly _config;
    private _remoteConfigSubscription?;
    private _domEventHandler?;
    private _copiedTextHandler?;
    private _disposed;
    constructor(_configSource: AutocaptureConfigSource);
    setup(client: Client): void;
    dispose(): void;
    private _refreshConfig;
    private _compileUrlPatterns;
    _addDomEventHandlers(): void;
    private _removeDomEventHandlers;
    startIfEnabled(): void;
    onRemoteConfig(result: RemoteConfigResult): void;
    setElementSelectors(selectors: Set<string>): void;
    getElementSelectors(element: Element | null): string[] | null;
    get isEnabled(): boolean;
    private _captureEvent;
    isBrowserSupported(): boolean;
}
