import IKeyStore, { KeyStoreListItem } from './IKeyStore';
import IKeyContainer from '../keys/IKeyContainer';
/**
 * Class defining methods and properties for a light KeyStore
 */
export default class KeyStoreInMemory implements IKeyStore {
    private store;
    /**
     * Returns the key container associated with the specified
     * key identifier.
     * @param keyReference for which to return the key.
     * @param [publicKeyOnly] True if only the public key is needed.
     */
    get(keyReference: string, publicKeyOnly?: boolean): Promise<IKeyContainer>;
    private publicKeysOnly;
    /**
     * Lists all keys with their corresponding key ids
     */
    list(): Promise<{
        [name: string]: KeyStoreListItem;
    }>;
    /**
     * Saves the specified key to the key store using
     * the key identifier.
     * @param keyIdentifier for the key being saved.
     * @param key being saved to the key store.
     */
    save(keyIdentifier: string, key: IKeyContainer): Promise<void>;
}
