import type { Rule, Scope, SourceCode } from 'eslint'; type MemberExpressionNode = Readonly>[0]>; type IdentifierNode = Readonly>[0]>; type ObjectExpressionNode = Readonly>[0]>; type IdentifierLike = Readonly>; type MemberExpressionLike = Readonly>; export type TrackedBinding = Readonly | string; export type TrackedReferenceState = { readonly aliasBindings: ReadonlySet; readonly containerPropertiesByBinding: ReadonlyMap>; }; export type PendingPathState = { readonly aliasBindings: ReadonlySet; readonly containerPropertiesByBinding: ReadonlyMap>; readonly hasUnhandledPath: boolean; }; type BindingAndProperty = { readonly binding: TrackedBinding; readonly propertyName: string | undefined; }; type ContainerPropertyAssignment = { readonly propertyName: string | undefined; readonly source: Readonly | null; readonly target: TrackedBinding; }; export declare function getTrackedBinding(sourceCode: Readonly, node: IdentifierLike): TrackedBinding; export declare function getMemberExpressionBindingAndProperty(sourceCode: Readonly, node: MemberExpressionLike): Readonly | undefined; export declare function createHandledPendingPathState(): PendingPathState; export declare function createInitialPendingPathState(callbackBinding: TrackedBinding): PendingPathState; export declare function cloneTrackedContainerProperties(containerPropertiesByBinding: ReadonlyMap>): Map>; export declare function clonePendingPathState(state: Readonly): PendingPathState; export declare function haveSameTrackedBindings(left: ReadonlySet, right: ReadonlySet): boolean; export declare function haveSameTrackedContainerProperties(left: ReadonlyMap>, right: ReadonlyMap>): boolean; export declare function haveSamePendingPathStates(left: Readonly, right: Readonly): boolean; export declare function mergeIncomingPendingPathStates(previousStates: readonly Readonly[]): PendingPathState; export declare function isTrackedCallbackExpression(sourceCode: Readonly, node: Readonly, state: Readonly): boolean; export declare function collectTrackedCallbackObjectProperties(sourceCode: Readonly, node: Readonly, state: Readonly): Set; export declare function getTrackedContainerPropertiesFromExpression(sourceCode: Readonly, node: Readonly, state: Readonly): Set | undefined; export declare function applyBindingSourceValue(sourceCode: Readonly, state: Readonly, source: Readonly | null, target: TrackedBinding): PendingPathState; export declare function applyContainerPropertyAssignment(sourceCode: Readonly, state: Readonly, assignment: Readonly): PendingPathState; export {}; //# sourceMappingURL=tracked-callback-reference-state.d.ts.map