import { ConversationPluginDefinition, ConversationPluginDefinitionFromPlugin } from "gpt-turbo"; import { ConversationStats } from "./classes/ConversationStats.js"; import { StatsPluginData } from "./utils/types/index.js"; /** * The name of the `statsPlugin`. */ export declare const statsPluginName: "gpt-turbo-plugin-stats"; /** * The type of the plugin definition created by the `statsPlugin`. */ export type StatsPluginDefinition = ConversationPluginDefinitionFromPlugin; /** * Type guard for the `statsPlugin`. Useful when using the `Conversation.getPlugin` method with a dynamic plugin name, preserving type safety. * * @example * ```ts * ["some-plugin", "some-other-plugin", "gpt-turbo-plugin-stats"].forEach( * (pluginName) => { * const plugin = conversation.plugins.safeGetPlugin(pluginName); * if (isStatsPlugin(plugin)) { * // plugin is now typed as StatsPlugin * plugin.out.getMessageStats(...); * } * } * ); * ``` * * @param plugin The plugin to check. * @returns Whether the plugin is a `statsPlugin`. */ export declare const isStatsPlugin: (plugin?: ConversationPluginDefinition) => plugin is ConversationPluginDefinition<"gpt-turbo-plugin-stats", ConversationStats, StatsPluginData>; /** * GPT Turbo plugin that calculates and stores statistics about the conversation. * * @example * ```ts * import { Conversation } from "gpt-turbo"; * import stats from "gpt-turbo-plugin-stats"; * * const conversation = new Conversation({ * plugins: [stats], * }); * ``` */ declare const statsPlugin: import("gpt-turbo").ConversationPlugin<"gpt-turbo-plugin-stats", ConversationStats, StatsPluginData>; export * from "./utils/index.js"; export * from "./classes/index.js"; export * from "./config/index.js"; export default statsPlugin;