import { StateHook, ValueHook, SetValueHook } from '../create-storage-state-factory/index.js';
import { NotUndefined, UseStorageRawOption, UseStorageParserOption } from '../create-storage-hook/index.js';

/**
 * @see https://foxact.skk.moe/create-session-storage-state
 *
 * @example
 * ```ts
 * ```ts
 * const [useOpenState, useOpen] = createSessionStorageState(
 *   'open', // storage key
 *   false, // server default value
 *   { raw: false } // options
 * );
 *
 * const [open, setOpen] = useOpenState();
 * const open = useOpen();
 * ```
 */
declare const createSessionStorageState: {
    <T>(key: string, serverValue: NotUndefined<T>, options?: UseStorageRawOption | UseStorageParserOption<T>): readonly [StateHook<T>, ValueHook<T>, SetValueHook<T | null>];
    <T>(key: string, serverValue?: undefined, options?: UseStorageRawOption | UseStorageParserOption<T>): readonly [StateHook<T | null>, ValueHook<T | null>, SetValueHook<T | null>];
};

export { createSessionStorageState };
