import { Dispatch, SetStateAction } from 'react';
/**
 * useValues
 * Notice 1 : useValues uses conditional hook. YOU SHOULD NEVER change the conditions. or it will boom
 *
 * 1. use === undefined 이면 useState<T>(defaultValue) (internal value, internal setter)
 * 2. use === [T] 이면 useState<T>(use[0])             (defaultValue)
 * 3. use === [T, undefined] 이면 use                  (fixed value)
 * 4. use === [T, (newState: T) => void] 이면 use      (external value, external setter)
 *
 */
export type TUseValues<T, K = T> = [T] | [T, ((newState: K) => void) | Dispatch<SetStateAction<T>> | undefined];
export declare function useValues<T, K = T>(use: TUseValues<T, K> | undefined, defaultValue: T): [T, Dispatch<SetStateAction<T>> | ((newState: K) => void) | undefined] | readonly [T, Dispatch<SetStateAction<T>>];
