import { ProfileMetadata } from '../types';
import type { AccountConfig } from '../config/unified-config-types';
import { type SharedResourceMode } from './shared-resource-policy';
interface CreateMetadata {
    type?: string;
    created?: string;
    last_used?: string | null;
    context_mode?: 'isolated' | 'shared';
    context_group?: string;
    continuity_mode?: 'standard' | 'deeper';
    shared_resource_mode?: SharedResourceMode;
    bare?: boolean;
}
export declare class ProfileRegistry {
    private profilesPath;
    constructor();
    private normalizeContextGroupValue;
    private normalizeLegacyProfileMetadata;
    private normalizeUnifiedAccountConfig;
    /**
     * Read profiles from disk
     */
    private _read;
    /**
     * Write profiles to disk atomically
     */
    private _write;
    /**
     * Create a new profile
     */
    createProfile(name: string, metadata?: CreateMetadata): void;
    /**
     * Get profile metadata
     */
    getProfile(name: string): ProfileMetadata;
    /**
     * Update profile metadata
     */
    updateProfile(name: string, updates: Partial<ProfileMetadata>): void;
    /**
     * Delete a profile
     */
    deleteProfile(name: string): void;
    /**
     * List all profiles
     */
    listProfiles(): string[];
    /**
     * Get all profiles with metadata
     */
    getAllProfiles(): Record<string, ProfileMetadata>;
    /**
     * Get default profile name
     */
    getDefaultProfile(): string | null;
    /**
     * Set default profile
     */
    setDefaultProfile(name: string): void;
    /**
     * Clear default profile (restore original CCS behavior)
     */
    clearDefaultProfile(): void;
    /**
     * Check if profile exists
     */
    hasProfile(name: string): boolean;
    /**
     * Update last used timestamp
     */
    touchProfile(name: string): void;
    /**
     * Create account in unified config (config.yaml)
     */
    createAccountUnified(name: string, metadata?: CreateMetadata): void;
    /**
     * Update account metadata in unified config
     */
    updateAccountUnified(name: string, updates: Partial<AccountConfig>): void;
    /**
     * Remove account from unified config
     */
    removeAccountUnified(name: string): void;
    /**
     * Set default profile in unified config
     */
    setDefaultUnified(name: string): void;
    /**
     * Clear default profile in unified config (restore original CCS behavior)
     */
    clearDefaultUnified(): void;
    /**
     * Check if account exists in unified config
     */
    hasAccountUnified(name: string): boolean;
    /**
     * Get all accounts from unified config
     */
    getAllAccountsUnified(): Record<string, AccountConfig>;
    /**
     * Get default from unified config
     */
    getDefaultUnified(): string | undefined;
    /**
     * Update account last_used in unified config
     */
    touchAccountUnified(name: string): void;
    /**
     * Get all profiles merged from both legacy and unified config.
     * Unified config takes precedence for duplicate names.
     * DRY helper to consolidate merge logic used in multiple places.
     */
    getAllProfilesMerged(): Record<string, ProfileMetadata>;
    /**
     * Get resolved default profile from unified config first, fallback to legacy.
     * DRY helper to consolidate default resolution logic.
     */
    getDefaultResolved(): string | null;
}
export default ProfileRegistry;
//# sourceMappingURL=profile-registry.d.ts.map