import type { Rule } from 'eslint'; import type { CallbackHandlingOperation } from '../callback-handling-state.ts'; import { type TrackedBinding } from '../tracked-callback-reference-state.ts'; type TrackedCallbackFunctionBase = { readonly callbackBinding: TrackedBinding; readonly codePath: Readonly; readonly currentSegments: ReadonlySet; readonly operationsBySegmentId: ReadonlyMap; }; export type DirectTrackedCallbackFunction = TrackedCallbackFunctionBase & { readonly callbackName: string; readonly callbackNode: Rule.Node; }; type InheritedTrackedCallbackFunction = TrackedCallbackFunctionBase & { readonly callbackName: undefined; readonly callbackNode: undefined; }; export type TrackedCallbackFunction = DirectTrackedCallbackFunction | InheritedTrackedCallbackFunction; type SharedCallbackTrackingOptions = { readonly ignorePending: boolean; readonly trackHandledCallbackArguments: boolean; }; type CallbackTrackingOptions = (SharedCallbackTrackingOptions & { readonly includeInheritedCallbackBinding: false; readonly onTrackedFunctionEnd: (trackedFunction: Readonly) => void; }) | (SharedCallbackTrackingOptions & { readonly includeInheritedCallbackBinding: true; readonly onTrackedFunctionEnd: (trackedFunction: Readonly) => void; }); export declare function createTrackedCallbackVisitors(context: Readonly, callbackTrackingOptions: Readonly): Readonly; export {}; //# sourceMappingURL=callback-tracking.d.ts.map