type NotUndefined = T extends undefined ? never : T; type Serializer = (value: T) => string; type Deserializer = (value: string) => T; interface UseUrlHashStateRawOption { raw: true; } interface UseUrlHashStateParserOption { raw?: false; serializer: Serializer; deserializer: Deserializer; } /** @see https://foxact.skk.moe/use-url-hash-state */ declare function useUrlHashState(key: string, defaultValue?: NotUndefined, options?: UseUrlHashStateRawOption | UseUrlHashStateParserOption): readonly [NonNullable | null, (v: React.SetStateAction) => void]; export { useUrlHashState as unstable_useUrlHashState }; export type { Deserializer, Serializer, UseUrlHashStateParserOption, UseUrlHashStateRawOption };