/** * Completion inside a CEL body. * * Every candidate comes from the scope the analyzer resolved for this exact * site, so the list is a claim that what it offers will type-check — not a * separate model of what CEL sees. Where the scope declares nothing (an open * node, a permissive contract, a live value) nothing is offered, which is the * honest answer rather than a guess. */ import type { CelScopeQuery, CelSegment } from "@telorun/analyzer"; import type { CompletionResult } from "../types.js"; /** The resource a cursor's document addresses. */ export interface CelCompletionTarget { kind?: string; name?: string; } /** * Candidates for the cursor inside `segment`. * * A member position (`req.|`) offers only what the prefix declares — no * functions, since a receiver-style call is rare next to a field access and * mixing them buries the fields. A root position offers the scope's names * first, then the global functions the environment declares. */ export declare function celCompletions(text: string, segment: CelSegment, offset: number, concretePath: string, target: CelCompletionTarget, query: CelScopeQuery | undefined): CompletionResult[]; //# sourceMappingURL=cel-completions.d.ts.map