/**
 * User configuration interface for growth system integration
 */
export interface UserConfig {
    machineUuid: string;
    authToken?: string;
    directoryQuota: number;
    lockedDirectories: string[];
    lastSyncAt?: Date;
    apiEndpoint?: string;
    offlineMode?: boolean;
    analyticsEnabled: boolean;
    version: string;
    machineFingerprint?: string;
    privacyLevel?: 'minimal' | 'standard' | 'enhanced';
    telemetryOptOut?: boolean;
}
/**
 * Default user configuration
 */
export declare const DEFAULT_USER_CONFIG: UserConfig;
/**
 * Get the user config file path
 */
export declare function getUserConfigPath(): string;
/**
 * Load user configuration from disk
 * Creates default config if file doesn't exist
 */
export declare function loadUserConfig(): Promise<UserConfig>;
/**
 * Save user configuration to disk
 */
export declare function saveUserConfig(config: UserConfig): Promise<void>;
/**
 * Get current user's directory quota
 */
export declare function getUserQuota(): Promise<number>;
/**
 * Get locked directories count
 */
export declare function getLockedDirectoryCount(): Promise<number>;
/**
 * Check if user is within their directory quota
 */
export declare function isWithinQuota(): Promise<boolean>;
/**
 * Add a directory to the locked directories list
 */
export declare function addLockedDirectory(dirPath: string): Promise<void>;
/**
 * Remove a directory from the locked directories list
 */
export declare function removeLockedDirectory(dirPath: string): Promise<void>;
/**
 * Update user's directory quota (typically after auth code redemption)
 */
export declare function updateDirectoryQuota(newQuota: number): Promise<void>;
/**
 * Set user's auth token
 */
export declare function setAuthToken(token: string): Promise<void>;
/**
 * Clear user's auth token
 */
export declare function clearAuthToken(): Promise<void>;
/**
 * Update user's machine UUID in config
 */
export declare function updateMachineUuid(uuid: string): Promise<void>;
/**
 * Set analytics preference
 */
export declare function setAnalyticsEnabled(enabled: boolean): Promise<void>;
/**
 * Get analytics preference
 */
export declare function getAnalyticsEnabled(): Promise<boolean>;
/**
 * Set offline mode
 */
export declare function setOfflineMode(offline: boolean): Promise<void>;
/**
 * Get offline mode status
 */
export declare function getOfflineMode(): Promise<boolean>;
/**
 * Set privacy level
 */
export declare function setPrivacyLevel(level: 'minimal' | 'standard' | 'enhanced'): Promise<void>;
/**
 * Get privacy level
 */
export declare function getPrivacyLevel(): Promise<'minimal' | 'standard' | 'enhanced'>;
/**
 * Set telemetry opt-out
 */
export declare function setTelemetryOptOut(optOut: boolean): Promise<void>;
/**
 * Get telemetry opt-out status
 */
export declare function getTelemetryOptOut(): Promise<boolean>;
/**
 * Validate machine fingerprint for security
 * Returns true if the configuration appears to be on the same machine
 */
export declare function validateMachineFingerprint(): Promise<boolean>;
/**
 * Check if analytics should be collected based on privacy settings
 */
export declare function shouldCollectAnalytics(): Promise<boolean>;
/**
 * Sanitize user config for safe logging/transmission
 */
export declare function sanitizeUserConfig(config: UserConfig): Partial<UserConfig>;
/**
 * Get user configuration for debugging
 */
export declare function getUserConfigDebugInfo(): Promise<Omit<UserConfig, 'authToken'>>;
/**
 * Reset user configuration to defaults (useful for testing)
 */
export declare function resetUserConfig(): Promise<void>;
/**
 * Validate user configuration integrity
 */
export declare function validateUserConfig(config: UserConfig): string[];
/**
 * Create backup of user configuration
 */
export declare function backupUserConfig(): Promise<string>;
/**
 * Restore user configuration from backup
 */
export declare function restoreUserConfig(backupPath: string): Promise<void>;
/**
 * Repair corrupted user configuration
 * Attempts to fix issues automatically or reset to defaults
 */
export declare function repairUserConfig(): Promise<{
    repaired: boolean;
    issuesFixed: string[];
    hadToReset: boolean;
}>;
/**
 * Safe configuration operation wrapper
 */
export declare function safeConfigOperation<T>(operation: () => Promise<T>, operationName: string, fallbackValue?: T): Promise<{
    success: boolean;
    result?: T;
    error?: string;
}>;
//# sourceMappingURL=user-config.d.ts.map