///
import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { SelectorService } from './selector.service';
import { FileProvider } from '../api/fileProvider';
import { PlatformService } from '../api/platform';
export interface StoredVault {
version: number;
contents: string;
keySalt: string;
iv: string;
}
export interface VaultSecret {
type: string;
key: VaultSecretKey;
value: string;
}
export interface VaultFileSecret extends VaultSecret {
key: {
id: string;
description: string;
};
}
export interface Vault {
config: any;
secrets: VaultSecret[];
}
export interface VaultSecretKey {
}
export declare const VAULT_SECRET_TYPE_FILE = "file";
export declare class VaultService {
private zone;
private notifications;
private ngbModal;
/** Fires once when the config is loaded */
get ready$(): Observable;
get contentChanged$(): Observable;
store: StoredVault | null;
private ready;
private contentChanged;
/** @hidden */
private constructor();
setEnabled(enabled: boolean, passphrase?: string): Promise;
isOpen(): boolean;
forgetPassphrase(): void;
decrypt(storage: StoredVault, passphrase?: string): Promise;
load(passphrase?: string): Promise;
encrypt(vault: Vault, passphrase?: string): Promise;
save(vault: Vault, passphrase?: string): Promise;
getPassphrase(): Promise;
getSecret(type: string, key: VaultSecretKey): Promise;
addSecret(secret: VaultSecret): Promise;
updateSecret(secret: VaultSecret, update: VaultSecret): Promise;
removeSecret(type: string, key: VaultSecretKey): Promise;
private keyMatches;
setStore(store: StoredVault): void;
isEnabled(): boolean;
}
export declare class VaultFileProvider extends FileProvider {
private vault;
private platform;
private selector;
private zone;
name: string;
prefix: string;
constructor(vault: VaultService, platform: PlatformService, selector: SelectorService, zone: NgZone);
isAvailable(): Promise;
selectAndStoreFile(description: string): Promise;
addNewFile(description: string): Promise;
retrieveFile(key: string): Promise;
}