import { Effect, Layer } from "effect"; import { RequestDecomposer } from "../services/request-decomposer/service.js"; import { type ClassificationInputV3, type ClassificationOperationV3 } from "./classifier-v3.js"; import { type LanguageModelDimensionClassifierOptions } from "./classifier.js"; export type LunaDirectClassifierV3Options = Readonly<{ complete: (body: unknown, signal?: AbortSignal) => Effect.Effect; }>; export type LunaDirectClassifierRequestAttemptV3 = 1 | 2; export declare function lunaDirectClassifierRequestBodyV3(input: ClassificationInputV3, attempt: LunaDirectClassifierRequestAttemptV3): Readonly>; export declare function makeLunaDirectClassificationOperationV3(options: LunaDirectClassifierV3Options): ClassificationOperationV3; export type LunaDirectRequestDecomposerOptions = LanguageModelDimensionClassifierOptions & { readonly modelAvailable: (model: string) => boolean; }; /** Concrete Luna/chat-completions implementation of the semantic classifier service. */ export declare function lunaDirectRequestDecomposerLayer(options: LunaDirectRequestDecomposerOptions): Layer.Layer;