/** * @license * Copyright 2025 Vybestack LLC * SPDX-License-Identifier: Apache-2.0 */ import { Profile, LoadBalancerProfile } from '../types/modelParams.js'; import type { SettingsService } from '../settings/SettingsService.js'; /** * Manages saving and loading of configuration profiles. * Profiles are stored in ~/.llxprt/profiles/.json * * @plan:PLAN-20250117-SUBAGENTCONFIG.P04 * @requirement:REQ-018 */ export declare class ProfileManager { private profilesDir; /** * @param profilesDir Optional custom directory for testing. If not provided, uses ~/.llxprt/profiles. */ constructor(profilesDir?: string); /** * Save the current configuration to a profile. * @param profileName The name of the profile to save * @param profile The profile configuration to save */ saveProfile(profileName: string, profile: Profile): Promise; saveLoadBalancerProfile(name: string, profile: LoadBalancerProfile): Promise; /** * Load a profile configuration. * @param profileName The name of the profile to load * @returns The loaded profile configuration */ loadProfile(profileName: string): Promise; /** * List all available profile names. * @returns Array of profile names (without .json extension) */ listProfiles(): Promise; /** * Delete a profile. * @param profileName The name of the profile to delete */ deleteProfile(profileName: string): Promise; /** * Check if a profile exists. * @param profileName The name of the profile to check * @returns True if the profile exists */ profileExists(profileName: string): Promise; /** * Save current settings to a profile through SettingsService * @param profileName The name of the profile to save */ /** * @plan:PLAN-20250218-STATELESSPROVIDER.P07 * @requirement:REQ-SP-005 * Persist profile data through the injected SettingsService instead of the * legacy singleton accessor. * @pseudocode:cli-runtime.md lines 9-11 */ save(profileName: string, settingsService: SettingsService): Promise; /** * Load a profile and apply through SettingsService * @param profileName The name of the profile to load */ /** * @plan:PLAN-20250218-STATELESSPROVIDER.P07 * @requirement:REQ-SP-005 * Apply profiles via the injected SettingsService rather than the singleton. * @pseudocode:cli-runtime.md lines 9-11 */ load(profileName: string, settingsService: SettingsService): Promise; }