export type FrustrationSignal = 'rage_click' | 'dead_click' | 'rapid_navigation' | 'form_failure' | 'error_page' | 'dead_click_dom'; export interface FrustrationEvent { signal: FrustrationSignal; target?: string; detail?: string; timestamp: number; } export declare class FrustrationDetector { private clickHistory; private onFrustration; private boundClickHandler; private unsubscribeErrors; private active; private lastInteraction; private cooldownUntil; private static readonly COOLDOWN_MS; private navTimestamps; private unsubscribeNavigation; private boundPageLeaveHandler; private boundTurboNavigationHandler; private lastNavigationAt; private boundSubmitHandler; private boundInvalidHandler; private recentSubmitForms; private recentFailedForms; private formFailureTimestamps; private errorPageUrls; private domObserver; private pendingDomChecks; private lastMutationAt; private pendingTimers; constructor(onFrustration: (event: FrustrationEvent) => void); start(): void; stop(): void; private schedule; private clearPendingTimers; private startNavigationTracking; private stopNavigationTracking; private noteNavigationStarted; private restoreState; private persistState; private startFormTracking; private stopFormTracking; private handleClick; private handleNavigation; private handleFormSubmit; private trackFormSubmitIntent; private trackNativeNavigationIntent; private rememberSubmitAttempt; private recordFormFailure; private handleFormInvalid; private checkErrorPage; private checkDeadClickDom; private ensureDomObserver; private disconnectDomObserver; private looksInteractive; private interactionTarget; private isIntrinsicInteractive; private emitIfReady; private emitHighPriority; } //# sourceMappingURL=frustration.d.ts.map