import { ObservationRecordReadType } from "./definitions"; import { FilterState } from "../../types"; import { FullObservations } from "../queries"; import { OrderByState } from "../../interfaces/orderBy"; import { PreferredClickhouseService } from "../clickhouse/client"; import { TracingSearchType } from "../../interfaces/search"; import { ClickHouseClientConfigOptions } from "@clickhouse/client"; import { ObservationType } from "../../domain"; import { RenderingProps } from "../utils/rendering"; /** * Checks if observation exists in clickhouse. * * @param {string} projectId - Project ID for the observation * @param {string} id - ID of the observation * @param {Date} startTime - Timestamp for time-based filtering, uses event payload or job timestamp * @returns {Promise} - True if observation exists * * Notes: * • Filters with two days lookback window subject to startTime * • Used for validating observation references before eval job creation */ export declare const checkObservationExists: (projectId: string, id: string, startTime: Date | undefined) => Promise; /** * Accepts a trace in a Clickhouse-ready format. * id, project_id, and timestamp must always be provided. */ export declare const upsertObservation: (observation: Partial) => Promise; export type GetObservationsForTraceOpts = { traceId: string; projectId: string; timestamp?: Date; includeIO?: IncludeIO; preferredClickhouseService?: PreferredClickhouseService; }; export declare const getObservationsForTrace: (opts: GetObservationsForTraceOpts) => Promise<{ id: string; traceId: string | null; projectId: string; environment: string; type: "SPAN" | "EVENT" | "GENERATION" | "AGENT" | "TOOL" | "CHAIN" | "RETRIEVER" | "EVALUATOR" | "EMBEDDING" | "GUARDRAIL"; startTime: Date; endTime: Date | null; name: string | null; metadata: Record; parentObservationId: string | null; level: "DEBUG" | "DEFAULT" | "WARNING" | "ERROR"; statusMessage: string | null; version: string | null; createdAt: Date; updatedAt: Date; model: string | null; internalModelId: string | null; modelParameters: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; input: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; output: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; completionStartTime: Date | null; promptId: string | null; promptName: string | null; promptVersion: number | null; latency: number | null; timeToFirstToken: number | null; usageDetails: Record; costDetails: Record; providedCostDetails: Record; inputCost: number | null; outputCost: number | null; totalCost: number | null; inputUsage: number; outputUsage: number; totalUsage: number; }[]>; export declare const getObservationForTraceIdByName: ({ traceId, projectId, name, timestamp, fetchWithInputOutput, }: { traceId: string; projectId: string; name: string; timestamp?: Date; fetchWithInputOutput?: boolean; }) => Promise<{ id: string; traceId: string | null; projectId: string; environment: string; type: "SPAN" | "EVENT" | "GENERATION" | "AGENT" | "TOOL" | "CHAIN" | "RETRIEVER" | "EVALUATOR" | "EMBEDDING" | "GUARDRAIL"; startTime: Date; endTime: Date | null; name: string | null; metadata: Record; parentObservationId: string | null; level: "DEBUG" | "DEFAULT" | "WARNING" | "ERROR"; statusMessage: string | null; version: string | null; createdAt: Date; updatedAt: Date; model: string | null; internalModelId: string | null; modelParameters: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; input: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; output: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; completionStartTime: Date | null; promptId: string | null; promptName: string | null; promptVersion: number | null; latency: number | null; timeToFirstToken: number | null; usageDetails: Record; costDetails: Record; providedCostDetails: Record; inputCost: number | null; outputCost: number | null; totalCost: number | null; inputUsage: number; outputUsage: number; totalUsage: number; }[]>; export declare const getObservationById: ({ id, projectId, fetchWithInputOutput, startTime, type, traceId, renderingProps, preferredClickhouseService, }: { id: string; projectId: string; fetchWithInputOutput?: boolean; startTime?: Date; type?: ObservationType; traceId?: string; renderingProps?: RenderingProps; preferredClickhouseService?: PreferredClickhouseService; }) => Promise<{ id: string; traceId: string | null; projectId: string; environment: string; type: "SPAN" | "EVENT" | "GENERATION" | "AGENT" | "TOOL" | "CHAIN" | "RETRIEVER" | "EVALUATOR" | "EMBEDDING" | "GUARDRAIL"; startTime: Date; endTime: Date | null; name: string | null; metadata: Record; parentObservationId: string | null; level: "DEBUG" | "DEFAULT" | "WARNING" | "ERROR"; statusMessage: string | null; version: string | null; createdAt: Date; updatedAt: Date; model: string | null; internalModelId: string | null; modelParameters: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; input: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; output: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; completionStartTime: Date | null; promptId: string | null; promptName: string | null; promptVersion: number | null; latency: number | null; timeToFirstToken: number | null; usageDetails: Record; costDetails: Record; providedCostDetails: Record; inputCost: number | null; outputCost: number | null; totalCost: number | null; inputUsage: number; outputUsage: number; totalUsage: number; } | undefined>; export declare const getObservationsById: (ids: string[], projectId: string, fetchWithInputOutput?: boolean) => Promise<{ id: string; traceId: string | null; projectId: string; environment: string; type: "SPAN" | "EVENT" | "GENERATION" | "AGENT" | "TOOL" | "CHAIN" | "RETRIEVER" | "EVALUATOR" | "EMBEDDING" | "GUARDRAIL"; startTime: Date; endTime: Date | null; name: string | null; metadata: Record; parentObservationId: string | null; level: "DEBUG" | "DEFAULT" | "WARNING" | "ERROR"; statusMessage: string | null; version: string | null; createdAt: Date; updatedAt: Date; model: string | null; internalModelId: string | null; modelParameters: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; input: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; output: (string | number | boolean | { [key: string]: import("../..").JsonNested; } | import("../..").JsonNested[]) | null; completionStartTime: Date | null; promptId: string | null; promptName: string | null; promptVersion: number | null; latency: number | null; timeToFirstToken: number | null; usageDetails: Record; costDetails: Record; providedCostDetails: Record; inputCost: number | null; outputCost: number | null; totalCost: number | null; inputUsage: number; outputUsage: number; totalUsage: number; }[]>; export type ObservationTableQuery = { projectId: string; filter: FilterState; orderBy?: OrderByState; searchQuery?: string; searchType?: TracingSearchType[]; limit?: number; offset?: number; selectIOAndMetadata?: boolean; clickhouseConfigs?: ClickHouseClientConfigOptions | undefined; }; export type ObservationsTableQueryResult = ObservationRecordReadType & { latency?: string; time_to_first_token?: string; trace_tags?: string[]; trace_name?: string; trace_user_id?: string; }; export declare const getObservationsTableCount: (opts: ObservationTableQuery) => Promise; export declare const getObservationsTableWithModelData: (opts: ObservationTableQuery) => Promise; export declare const getObservationsGroupedByModel: (projectId: string, filter: FilterState) => Promise<{ model: string; }[]>; export declare const getObservationsGroupedByModelId: (projectId: string, filter: FilterState) => Promise<{ modelId: string; }[]>; export declare const getObservationsGroupedByName: (projectId: string, filter: FilterState) => Promise<{ name: string; }[]>; export declare const getObservationsGroupedByPromptName: (projectId: string, filter: FilterState) => Promise<{ promptName: string; }[]>; export declare const getCostForTraces: (projectId: string, timestamp: Date, traceIds: string[]) => Promise; export declare const deleteObservationsByTraceIds: (projectId: string, traceIds: string[]) => Promise; export declare const deleteObservationsByProjectId: (projectId: string) => Promise; export declare const deleteObservationsOlderThanDays: (projectId: string, beforeDate: Date) => Promise; export declare const getObservationsWithPromptName: (projectId: string, promptNames: string[]) => Promise<{ count: number; promptName: string; }[]>; export declare const getObservationMetricsForPrompts: (projectId: string, promptIds: string[]) => Promise<{ count: number; promptId: string; promptVersion: number; firstObservation: Date; lastObservation: Date; medianInputUsage: number; medianOutputUsage: number; medianTotalCost: number; medianLatencyMs: number; }[]>; export declare const getLatencyAndTotalCostForObservations: (projectId: string, observationIds: string[], timestamp?: Date) => Promise<{ id: string; totalCost: number; latency: number; }[]>; export declare const getLatencyAndTotalCostForObservationsByTraces: (projectId: string, traceIds: string[], timestamp?: Date) => Promise<{ traceId: string; totalCost: number; latency: number; }[]>; export declare const getObservationCountsByProjectInCreationInterval: ({ start, end, }: { start: Date; end: Date; }) => Promise<{ projectId: string; count: number; }[]>; export declare const getObservationCountOfProjectsSinceCreationDate: ({ projectIds, start, }: { projectIds: string[]; start: Date; }) => Promise; export declare const getTraceIdsForObservations: (projectId: string, observationIds: string[]) => Promise<{ id: string; traceId: string; }[]>; export declare const getObservationsForBlobStorageExport: (projectId: string, minTimestamp: Date, maxTimestamp: Date) => AsyncGenerator, any, any>; export declare const getGenerationsForPostHog: (projectId: string, minTimestamp: Date, maxTimestamp: Date) => AsyncGenerator<{ $set: { langfuse_user_url: string; }; timestamp: unknown; langfuse_generation_name: unknown; langfuse_trace_name: unknown; langfuse_trace_id: unknown; langfuse_url: string; langfuse_id: unknown; langfuse_cost_usd: unknown; langfuse_input_units: unknown; langfuse_output_units: unknown; langfuse_total_units: unknown; langfuse_session_id: unknown; langfuse_project_id: string; langfuse_user_id: {} | null; langfuse_latency: unknown; langfuse_time_to_first_token: unknown; langfuse_release: unknown; langfuse_version: unknown; langfuse_model: unknown; langfuse_level: unknown; langfuse_tags: unknown; langfuse_environment: unknown; langfuse_event_version: string; $session_id: {} | null; } | { $process_person_profile: boolean; timestamp: unknown; langfuse_generation_name: unknown; langfuse_trace_name: unknown; langfuse_trace_id: unknown; langfuse_url: string; langfuse_id: unknown; langfuse_cost_usd: unknown; langfuse_input_units: unknown; langfuse_output_units: unknown; langfuse_total_units: unknown; langfuse_session_id: unknown; langfuse_project_id: string; langfuse_user_id: {} | null; langfuse_latency: unknown; langfuse_time_to_first_token: unknown; langfuse_release: unknown; langfuse_version: unknown; langfuse_model: unknown; langfuse_level: unknown; langfuse_tags: unknown; langfuse_environment: unknown; langfuse_event_version: string; $session_id: {} | null; }, void, unknown>; //# sourceMappingURL=observations.d.ts.map