import { CredentialStore } from '../types/lnc';
/**
 * A wrapper around `window.localStorage` used to store sensitive data required
 * by LNC to reconnect after the initial pairing process has been completed. The
 * data is encrypted at rest using the provided `password`.
 */
export default class LncCredentialStore implements CredentialStore {
    private persisted;
    private _localKey;
    private _remoteKey;
    private _pairingPhrase;
    /** The password used to encrypt and decrypt the stored data */
    private _password?;
    /** The namespace to use in the localStorage key */
    private namespace;
    /**
     * Constructs a new `LncCredentialStore` instance
     */
    constructor(namespace?: string, password?: string);
    /**
     * Stores the optional password to use for encryption of the data. LNC does not
     * read or write the password. This is just exposed publicly to simplify access
     * to the field via `lnc.credentials.password`
     */
    get password(): string;
    /**
     * Stores the optional password to use for encryption of the data. LNC does not
     * read or write the password. This is just exposed publicly to simplify access
     * to the field via `lnc.credentials.password`
     */
    set password(password: string);
    /** Stores the host:port of the Lightning Node Connect proxy server to connect to */
    get serverHost(): string;
    /** Stores the host:port of the Lightning Node Connect proxy server to connect to */
    set serverHost(host: string);
    /** Stores the LNC pairing phrase used to initialize the connection to the LNC proxy */
    get pairingPhrase(): string;
    /** Stores the LNC pairing phrase used to initialize the connection to the LNC proxy */
    set pairingPhrase(phrase: string);
    /** Stores the local private key which LNC uses to reestablish a connection */
    get localKey(): string;
    /** Stores the local private key which LNC uses to reestablish a connection */
    set localKey(key: string);
    /** Stores the remote static key which LNC uses to reestablish a connection */
    get remoteKey(): string;
    /** Stores the remote static key which LNC uses to reestablish a connection */
    set remoteKey(key: string);
    /**
     * Read-only field which should return `true` if the client app has prior
     * credentials persisted in teh store
     */
    get isPaired(): boolean;
    /** Clears any persisted data in the store */
    clear(memoryOnly?: boolean): void;
    /** Loads persisted data from localStorage */
    private _load;
    /** Saves persisted data to localStorage */
    private _save;
    /**
     * A wrapper around `encrypt` which just returns an empty string if the
     * value or password have no value
     */
    private _encrypt;
    /**
     * A wrapper around `decrypt` which just returns an empty string if the
     * value or password have no value
     */
    private _decrypt;
}
//# sourceMappingURL=credentialStore.d.ts.map