import type { Program } from "@typespec/compiler"; import type { ResolvedProjection } from "./projection.js"; export interface EmittedJoinResolverFile { fileName: string; content: string; } export declare function toJoinResolverFileName(projectionModelName: string): string; export declare function toJoinResolverInterfaceName(projectionModelName: string): string; /** * The join-resolver interface a projection's `@dependsOn` declarations imply * (issue #194): one method per declaration, named for the document field it * fills, taking the join key and returning that field's declared type. Both * joins are left joins, so a `lookup` may resolve to nothing and a discovery * to no rows. `undefined` when the projection declares no joins. */ export declare function emitJoinResolver(program: Program, projection: ResolvedProjection): EmittedJoinResolverFile | undefined; /** * Named for the field it fills, so two joins over the same entity stay apart * without a disambiguation rule — a model cannot declare a property twice. */ declare function toMethodName(direction: string, fieldName: string): string; export declare const __test: { toJoinResolverFileName: typeof toJoinResolverFileName; toJoinResolverInterfaceName: typeof toJoinResolverInterfaceName; toMethodName: typeof toMethodName; }; export {}; //# sourceMappingURL=emit-join-resolver.d.ts.map