import type { ChatContext } from '../llm/chat_context.js';
import { type ModelUsage } from '../metrics/model_usage.js';
import type { AgentSessionOptions, ResolvedRecordingOptions, VoiceOptions } from './agent_session.js';
import type { AgentEvent } from './events.js';
type ReportOptions = AgentSessionOptions & Partial<VoiceOptions>;
export interface SessionReport {
    jobId: string;
    roomId: string;
    room: string;
    options: ReportOptions;
    events: AgentEvent[];
    chatHistory: ChatContext;
    enableRecording: boolean;
    /** Resolved per-category recording options for this session. */
    recordingOptions: ResolvedRecordingOptions;
    /** Timestamp when the session started (milliseconds) */
    startedAt: number;
    /** Timestamp when the session report was created (milliseconds), typically at the end of the session */
    timestamp: number;
    /** Path to the audio recording file (if recording was enabled) */
    audioRecordingPath?: string;
    /** Timestamp when the audio recording started (milliseconds) */
    audioRecordingStartedAt?: number;
    /** Duration of the session in milliseconds */
    duration?: number;
    /** Usage summaries for the session, one per model/provider combination */
    modelUsage?: ModelUsage[];
}
export interface SessionReportOptions {
    jobId: string;
    roomId: string;
    room: string;
    options: ReportOptions;
    events: AgentEvent[];
    chatHistory: ChatContext;
    enableRecording?: boolean;
    /** Resolved per-category recording options for this session. */
    recordingOptions?: ResolvedRecordingOptions;
    /** Timestamp when the session started (milliseconds) */
    startedAt?: number;
    /** Timestamp when the session report was created (milliseconds) */
    timestamp?: number;
    /** Path to the audio recording file (if recording was enabled) */
    audioRecordingPath?: string;
    /** Timestamp when the audio recording started (milliseconds) */
    audioRecordingStartedAt?: number;
    /** Usage summaries for the session, one per model/provider combination */
    modelUsage?: ModelUsage[];
}
export declare function createSessionReport(opts: SessionReportOptions): SessionReport;
export declare function sessionReportToJSON(report: SessionReport): Record<string, unknown>;
export {};
//# sourceMappingURL=report.d.ts.map