import ts from 'typescript';
import { CompilerContext } from '../compilerContext.js';
import { IntrinsicsMethods } from './intrinsics.js';
/**
 * How the step function was declared.
 */
export type StepFunctionOrigin = {
    kind: 'createFunction';
    call: ts.CallExpression;
} | {
    kind: 'decorator';
    decorator: ts.Decorator;
    method: ts.MethodDeclaration;
};
/**
 * The factory function passed to Steps.createFunction() or the decorated method.
 */
export interface StepFunctionFactory {
    readonly contextType?: ts.TypeNode;
    readonly inputType?: ts.TypeNode;
    readonly factory: ts.FunctionLikeDeclarationBase;
}
/**
 * A discovered step function call site.
 */
export interface StepFunctionCallSite {
    readonly file: ts.SourceFile;
    readonly origin: StepFunctionOrigin;
    readonly factoryFunction: StepFunctionFactory;
}
/**
 * Find all step function declarations in a source file.
 *
 * Detects two patterns:
 * 1. `Steps.createFunction(fn)` — call expression
 * 2. `@stepFunction` — method decorator
 */
export declare function findCallSites(context: CompilerContext, intrinsics: IntrinsicsMethods, file: ts.SourceFile): StepFunctionCallSite[];
//# sourceMappingURL=callSiteLocator.d.ts.map