export interface VaultKey {
    passphrase: string;
}
export interface VaultBundleRecord {
    metadata?: string;
    keys: Record<string, string>;
}
export interface VaultData {
    v: 1;
    bundles: Record<string, VaultBundleRecord>;
}
export declare const VAULT_SESSION_TTL_MS: number;
export declare const VAULT_SCRYPT_WORK_FACTOR = 18;
export declare function vaultPath(): string;
export declare function vaultExists(): boolean;
export declare function _setVaultPathForTest(filePath: string | null): void;
export declare function _clearVaultDataCacheForTest(): void;
export declare function _resetVaultAgeOperationCountForTest(): void;
export declare function _getVaultAgeOperationCountForTest(): number;
export declare function _setVaultAgeHelperLaunchForTest(launch: {
    command: string;
    args: string[];
} | null): void;
export declare function encrypt(key: VaultKey, json: VaultData): string;
export declare function decrypt(key: VaultKey, blob: string): VaultData;
export declare function createVault(password: string, opts?: {
    overwrite?: boolean;
}): VaultKey;
export declare function joinVault(password: string, sourcePath: string, opts?: {
    overwrite?: boolean;
}): VaultKey;
export declare function unlock(password: string): VaultKey;
export declare function cacheVaultKey(key: VaultKey, ttlMs?: number): void;
export declare function clearVaultKey(): void;
export declare function getVaultSession(): {
    loggedIn: true;
    key: VaultKey;
    expiresAt: number;
} | {
    loggedIn: false;
    expiresAt?: number;
};
export declare function vaultHasItem(item: string): boolean;
export declare function vaultGetItem(item: string): string;
export declare function vaultGetItems(items: string[]): Map<string, string>;
export declare function vaultSetItem(item: string, value: string): void;
export declare function vaultSetItems(items: Map<string, string>): void;
export declare function vaultDeleteItem(item: string): boolean;
export declare function vaultListItems(prefix: string): string[];
