export interface DependsCallSite {
    /** Name of the dependency function (e.g. "get_db") */
    name: string;
    /** Raw Depends() expression, e.g. "Depends(get_db)" or "Security(oauth2_scheme, scopes=['admin'])" */
    expression: string;
    /** Whether this is a Security() call (auth dependency) */
    is_security: boolean;
    /** Security scopes if present */
    scopes: string[];
}
export interface DependsNode {
    /** Dependency function name */
    name: string;
    /** File where the dependency is defined, if resolvable */
    file?: string;
    /** Line where the dependency is defined */
    line?: number;
    /** Sub-dependencies this dep itself uses */
    depends_on: DependsNode[];
    /** Is this a yield-based dependency (FastAPI cleanup pattern)? */
    is_yield: boolean;
    /** Is this a Security() dep? */
    is_security: boolean;
    /** Security scopes if present */
    scopes: string[];
    /** Depth in the tree (0 = directly attached to endpoint) */
    depth: number;
}
export interface FastAPIEndpointDeps {
    /** Endpoint function symbol name */
    endpoint: string;
    /** File path */
    file: string;
    /** Line */
    line: number;
    /** HTTP method and path, e.g. "GET /users/{id}" */
    route?: string;
    /** Full dependency tree rooted at this endpoint */
    depends: DependsNode[];
    /** All unique dep names used (flattened) */
    all_deps: string[];
    /** Are any Security() deps in the chain? */
    has_auth: boolean;
}
export interface FastAPIDependsResult {
    endpoints: FastAPIEndpointDeps[];
    total_endpoints: number;
    total_unique_deps: number;
    endpoints_without_auth: string[];
    shared_deps: Array<{
        name: string;
        used_by: number;
    }>;
}
/**
 * Trace FastAPI Depends() chains for all endpoints in the repository.
 */
export declare function traceFastAPIDepends(repo: string, options?: {
    file_pattern?: string;
    endpoint?: string;
    max_depth?: number;
}): Promise<FastAPIDependsResult>;
//# sourceMappingURL=fastapi-depends.d.ts.map