export declare type StorageType = "localStorage" | "sessionStorage"; export interface IStorageProperties { /** Storage key */ key: string; /** Default value that will be set if value is not found in storage */ defaultValue?: T; /** If set to true, value will be update is useEffect after mount */ getInitialValueInEffect?: boolean; /** Function to serialize value into string to be save in storage */ serialize?(value: T): string; /** Function to deserialize string value from storage to value */ deserialize?(value: string): T; } export declare function useLocalStorage(props: IStorageProperties): readonly [T | undefined, (val: T | ((prevState: T) => T)) => void]; export declare function useSessionStorage(props: IStorageProperties): readonly [T | undefined, (val: T | ((prevState: T) => T)) => void];