/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { Config } from '../config/config.js';
import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, StartSessionEvent, ToolCallEvent, UserPromptEvent, NextSpeakerCheckEvent, LoopDetectedEvent, SlashCommandEvent, ConversationRequestEvent, ConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, KittySequenceOverflowEvent, TokenUsageEvent, PerformanceMetricsEvent, ToolOutputTruncatedEvent, FileOperationEvent, MalformedJsonResponseEvent, ModelRoutingEvent, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, ExtensionDisableEvent } from './types.js';
type SessionConfig = Pick<Config, 'getSessionId'>;
type TelemetryPromptConfig = Pick<Config, 'getTelemetryLogPromptsEnabled'>;
type ToolLoggingConfig = SessionConfig & TelemetryPromptConfig;
export declare function logCliConfiguration(config: Config, event: StartSessionEvent): void;
export declare function logUserPrompt(config: Config, event: UserPromptEvent): void;
export declare function logToolCall(config: ToolLoggingConfig, event: ToolCallEvent): void;
export declare function logToolOutputTruncated(config: Config, event: ToolOutputTruncatedEvent): void;
export declare function logFileOperation(config: Config, event: FileOperationEvent): void;
export declare function logApiRequest(config: Config, event: ApiRequestEvent): void;
export declare function logApiError(config: Config, event: ApiErrorEvent): void;
export declare function logApiResponse(config: Config, event: ApiResponseEvent): void;
export declare function logLoopDetected(config: Config, event: LoopDetectedEvent): void;
export declare function logNextSpeakerCheck(config: Config, event: NextSpeakerCheckEvent): void;
export declare function logSlashCommand(config: Config, event: SlashCommandEvent): void;
export declare function logConversationRequest(config: Config, event: ConversationRequestEvent): void;
export declare function logConversationResponse(config: Config, event: ConversationResponseEvent): void;
export declare function logProviderSwitch(config: Config, event: ProviderSwitchEvent): void;
export declare function logProviderCapability(config: Config, event: ProviderCapabilityEvent): void;
export declare function logKittySequenceOverflow(config: Config, event: KittySequenceOverflowEvent): void;
/**
 * Logs token usage per conversation turn.
 * @param config The configuration object.
 * @param event The TokenUsageEvent to log.
 */
export declare function logTokenUsage(config: Config, event: TokenUsageEvent): void;
/**
 * Logs performance metrics such as tokens per minute.
 * @param config The configuration object.
 * @param event The PerformanceMetricsEvent to log.
 */
export declare function logPerformanceMetrics(config: Config, event: PerformanceMetricsEvent): void;
export declare function logMalformedJsonResponse(config: Config, event: MalformedJsonResponseEvent): void;
export declare function logModelRouting(config: Config, event: ModelRoutingEvent): void;
export declare function logExtensionInstallEvent(config: Config, event: ExtensionInstallEvent): void;
export declare function logExtensionUninstall(config: Config, event: ExtensionUninstallEvent): void;
export declare function logExtensionEnable(config: Config, event: ExtensionEnableEvent): void;
export declare function logExtensionDisable(config: Config, event: ExtensionDisableEvent): void;
export {};
