import type { GoodVibesConfig } from '../config/schema.js';
/**
 * ProfileData - host-specific settings stored in a profile.
 * Excludes permissions and API keys — only display/behavior/provider settings.
 */
export interface ProfileData {
    display?: Partial<GoodVibesConfig['display']> | undefined;
    provider?: Pick<GoodVibesConfig['provider'], 'model' | 'reasoningEffort'> | undefined;
    behavior?: Partial<GoodVibesConfig['behavior']> | undefined;
}
/**
 * ProfileInfo - Summary of a saved profile.
 */
export interface ProfileInfo {
    name: string;
    timestamp: number;
    filePath: string;
}
/**
 * ProfileManager - Save and load named SDK host config profiles.
 *
 * Profiles are stored as JSON files in the configured profile directory.
 * Only host-surface settings (display, provider, behavior categories) are saved;
 * permissions and API keys are never included.
 */
export declare class ProfileManager {
    private readonly profilesDir;
    private lastTimestamp;
    constructor(baseDir: string);
    get storagePath(): string;
    /**
     * save - Persist a profile under the given name.
     * Overwrites an existing profile with the same name.
     */
    save(name: string, data: ProfileData): string;
    /**
     * load - Load a profile by name. Returns the profile data or throws if not found.
     */
    load(name: string): {
        data: ProfileData;
        timestamp: number;
    };
    /**
     * list - Return all saved profiles sorted by most recent first.
     */
    list(): ProfileInfo[];
    private nextTimestamp;
    /**
     * delete - Remove a profile by name. Returns true if deleted, false if not found.
     */
    delete(name: string): boolean;
    /**
     * sanitizeName - Safe filename from profile name.
     */
    sanitizeName(name: string): string;
}
//# sourceMappingURL=manager.d.ts.map