import type { DecompositionInput, DecompositionResult, RoutingBasis } from "@velum-labs/routekit-eval-contracts"; import { CLASSIFIER_BASIS_TEXT_LIMIT } from "@velum-labs/routekit-eval-contracts"; import { Effect } from "effect"; export declare const CLASSIFIABLE_REQUEST_TEXT_LIMIT = 4000; export { CLASSIFIER_BASIS_TEXT_LIMIT }; declare const ClassificationError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ClassificationError"; } & Readonly; export declare class ClassificationError extends ClassificationError_base<{ readonly message: string; readonly cause?: unknown; }> { } export type DimensionDecompositionOperation = (input: DecompositionInput) => Effect.Effect; export type ObservedDecompositionResult = DecompositionResult & { readonly classifierCallId?: string; }; export declare function classifyRequestDimensions(classifier: Readonly<{ decompose: DimensionDecompositionOperation; }>, input: DecompositionInput): Effect.Effect; export declare function validateDecompositionInput(input: unknown): Effect.Effect; export declare function validateDecompositionResult(result: unknown, basis: RoutingBasis): Effect.Effect; export declare function extractClassifiableRequestText(body: unknown): string; export declare function parseDecompositionResult(text: string): unknown; export declare function makeFakeDimensionDecomposition(result: DecompositionResult | ((request: string) => DecompositionResult)): DimensionDecompositionOperation; export type LanguageModelDimensionClassifierOptions = Readonly<{ model: string; complete: (body: unknown, signal?: AbortSignal) => Effect.Effect; }>; export declare function makeLanguageModelDimensionClassifier(options: LanguageModelDimensionClassifierOptions): DimensionDecompositionOperation;