import type { IConfig } from '../../types';
import type { ConfigValue, ISnapshot } from './types';
import { E2EVersion, EncryptionMethod } from './types';
declare const ENCRYPTION_METHOD_PATH = "settings.picgoCloud.encryptionMethod";
declare const IGNORED_PATHS: string[];
interface IMaskIgnoredOptions {
    cleanupEmptyParents?: boolean;
}
/**
 * Mask ignored config paths so local-only values don't conflict or overwrite remote values.
 */
declare const maskIgnoredFields: (target: IConfig, source: IConfig, options?: IMaskIgnoredOptions) => IConfig;
/**
 * Read the local encryption method preference from config.
 */
declare const getLocalEncryptionMethod: (config: IConfig) => EncryptionMethod | undefined;
/**
 * Resolve encryption method based on explicit method or local preference.
 */
declare const resolveEncryptionMethod: (method: EncryptionMethod | undefined, localConfig: IConfig) => EncryptionMethod;
/**
 * Normalize remote E2E version and reject unsupported versions.
 */
declare const resolveE2EVersion: (version?: number) => E2EVersion;
/**
 * Read a JSON config file using comment-json to preserve comments and metadata.
 */
declare const readConfigWithComments: (filePath: string) => Promise<ConfigValue>;
/**
 * Write a JSON config file using comment-json to preserve comments and metadata.
 */
declare const writeConfigWithComments: (filePath: string, config: ConfigValue) => Promise<void>;
/**
 * Load snapshot data from disk, handling legacy plain-object snapshots.
 */
declare const loadSnapshot: (snapshotPath: string) => Promise<ISnapshot>;
/**
 * Persist snapshot data to disk with version and timestamp metadata.
 */
declare const saveSnapshot: (snapshotPath: string, config: ConfigValue, version: number) => Promise<void>;
export { IGNORED_PATHS, ENCRYPTION_METHOD_PATH, getLocalEncryptionMethod, loadSnapshot, maskIgnoredFields, readConfigWithComments, resolveE2EVersion, resolveEncryptionMethod, saveSnapshot, writeConfigWithComments };
