/**
 * @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/<profileName>.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<void>;
    saveLoadBalancerProfile(name: string, profile: LoadBalancerProfile): Promise<void>;
    /**
     * Load a profile configuration.
     * @param profileName The name of the profile to load
     * @returns The loaded profile configuration
     */
    loadProfile(profileName: string): Promise<Profile>;
    /**
     * List all available profile names.
     * @returns Array of profile names (without .json extension)
     */
    listProfiles(): Promise<string[]>;
    /**
     * Delete a profile.
     * @param profileName The name of the profile to delete
     */
    deleteProfile(profileName: string): Promise<void>;
    /**
     * Check if a profile exists.
     * @param profileName The name of the profile to check
     * @returns True if the profile exists
     */
    profileExists(profileName: string): Promise<boolean>;
    /**
     * 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<void>;
    /**
     * 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<void>;
}
