import type { Rule, SourceCode } from 'eslint';
import { type TrackedBinding } from './tracked-callback-reference-state.ts';
type CallExpressionNode = Readonly<Parameters<Exclude<Rule.RuleListener['CallExpression'], undefined>>[0]>;
type Operation = {
    readonly node: Readonly<CallExpressionNode>;
    readonly type: 'call';
} | {
    readonly node: Readonly<Rule.Node>;
    readonly type: 'callbackHandoff';
} | {
    readonly propertyName: string | undefined;
    readonly source: Readonly<Rule.Node> | null;
    readonly target: TrackedBinding;
    readonly type: 'containerPropertyAssignment';
} | {
    readonly source: Readonly<Rule.Node> | null;
    readonly target: TrackedBinding;
    readonly type: 'bindingAssignment';
};
type AnalysisContext = {
    readonly callbackBinding: TrackedBinding;
    readonly codePath: Readonly<Rule.CodePath>;
    readonly operationsBySegmentId: ReadonlyMap<string, readonly Operation[]>;
    readonly sourceCode: Readonly<SourceCode>;
};
export declare function enqueueNextSegments(nextSegments: readonly Readonly<Rule.CodePathSegment>[], pendingSegments: readonly Rule.CodePathSegment[], queuedSegmentIds: ReadonlySet<string>): readonly [readonly Rule.CodePathSegment[], ReadonlySet<string>];
export declare function hasUnhandledReturnPath(context: Readonly<AnalysisContext>): boolean;
export {};
//# sourceMappingURL=done-callback-paths.d.ts.map