/**
* Возвращает объект, содержащий методы для работы
* с localStorage:
* — если localStorage поддерживается, то этот объект — обертка,
* — если нет, то этот объект — полифил
*
* Методы те же, что и у нативного localStorage, за исключением
* свойства `length` — вместо него используйте метод `getLength()`
*
* @see {@link bloko/common/storage/Wrapper} (Обертка)
* @see {@link bloko/common/storage/Polyfill} (Полифил)
*
* @type {Object}
* @exports bloko/common/storage/LocalStorageWrapper
*/
interface LocalStorageWrapper {
/**
* Возвращает имя i-го ключа в (local|session)Storage
* @param {Number} index Порядковый номер ключа
* @returns {String|Null} Имя ключа или null в случае отсутствия такового или ошибки
*
* @member
* @method
*/
key: (index: number) => string | null;
/**
* Возвращает значение по ключу
* @param {String} key Имя ключа
* @returns {String|Null} Значение
*
* @member
* @method
*/
getItem: (key: string) => string | null;
/**
* Добавляет ключ в storage или обновляет его значение, если такой уже существует
* @param {String} key Имя ключа
* @param {String} value Значение
*
* @member
* @method
*/
setItem: (key: string, value: string) => void;
/**
* Удаляет ключ из (local|session)Storage
* @param {String} key Имя ключа
*
* @member
* @method
*/
removeItem: (key: string) => void;
/**
* Удаляет все ключи из (local|session)Storage
*
* @member
* @method
*/
clear: () => void;
/**
* Возвращает число ключей в (local|session)Storage
* @returns {Number}
*
* @member
* @method
*/
getLength: () => number;
}
declare const localStorageWrapper: LocalStorageWrapper;
export default localStorageWrapper;