import { RefObject, RefCallback, useEffect, ForwardedRef } from 'react'; type DeepPartial = Value extends object ? { [Key in keyof Value]?: DeepPartial; } : Value; type DeepWritable = Type extends Date | Error | Function | RegExp | boolean | number | string | null | undefined ? Type : Type extends Map ? Map, DeepWritable> : Type extends ReadonlyMap ? Map, DeepWritable> : Type extends WeakMap ? WeakMap, DeepWritable> : Type extends Set ? Set> : Type extends ReadonlySet ? Set> : Type extends WeakSet ? WeakSet> : Type extends Promise ? Promise> : Type extends Record ? { -readonly [K in keyof Type]: DeepWritable; } : Type; type DistributiveOmit = Obj extends any ? Omit : never; type DistributivePick = Type extends unknown ? Pick : never; type Rect$1 = { height: number; width: number; x: number; y: number; }; type TargetElement = any; declare function getElementRect(element: TargetElement): Promise; type RemoveArray = ArrayLike extends any[] ? ArrayLike[number] : ArrayLike; type PathImpl = Key extends string ? Obj[Key] extends Record ? `${Key}.${keyof RemoveArray & (number | string)}` | `${Key}.${PathImpl> & (number | string)}` : never : never; type Path = PathImpl | keyof Obj; declare const addStyleValues: (...values: (number | string)[]) => string | number; declare const convertRemToPixels: (value: number | string) => number | string; declare function isDefined(value: Value | undefined): value is Value; declare const get: (obj: Record, path: string, defaultValue?: any) => any; declare const range: (length: number) => any[]; declare const isRecord: (value: any) => boolean; declare const uuidV4: () => string; declare const useSafeDeps: (value: Value) => RefObject; declare const toZeroPadded: (source: number | string | undefined, maxStringLength: number) => string; declare const getDateString: (date: Date, divider?: string) => string; declare function useBackHandler(handler: () => boolean): void; type LayoutEvent = { width: number; height: number; top: number; left: number; right: number; bottom: number; }; type UseLayoutEventResult = { ref: RefCallback; }; declare const useLayoutEvent: (callback?: (event: LayoutEvent) => void) => UseLayoutEventResult; type UseInViewProps = { initialInView: boolean; onChange?: (inView: boolean) => void; options?: IntersectionObserverInit; }; type UseInViewResult = { ref: RefCallback; isInView: boolean; }; declare const useInView: ({ initialInView, onChange, options }: UseInViewProps) => UseInViewResult; type Rect = { height: number; width: number; x: number; y: number; }; type Side = 'bottom' | 'left' | 'right' | 'top'; type Align = 'end' | 'start'; type Position = Side | `${Side}-${Align}`; declare const getOffsetByPosition: ({ referenceRect, targetRect, position, spacing, }: { referenceRect: Rect; targetRect: Rect; position: Position; spacing?: number; }) => { x: number; y: number; }; declare const detectOverflow: ({ viewport, targetRect, }: { viewport: Pick; targetRect: Rect; }) => { top: number; bottom: number; left: number; right: number; }; declare const flipPosition: (position: Position, flipAlignment?: boolean) => Position; declare function useCallbackRef any>(callback: CallbackFn | undefined): CallbackFn; type UseControllableStateProps = { value?: Value; defaultValue?: Value; onValueChange?: (value: Value) => void; }; declare function useControllableState({ value: valueProp, defaultValue, onValueChange, }: UseControllableStateProps): readonly [Value, (nextValue: Value) => void]; declare const useIsomorphicLayoutEffect: typeof useEffect; declare const useObjectMemo: (object: Value) => Value; declare function useComposedRef(ref1?: ForwardedRef | null, ref2?: ForwardedRef): (node: HTMLDivElement) => void; type UseEscapeEventResult = { ref: RefObject; }; declare const useEscapeEvent: (callback: () => void) => UseEscapeEventResult; type Without = { [P in Exclude]?: never; }; type Either = T | U extends object ? (Without & U) | (Without & T) : T | U; export { type Align, type DeepPartial, type DeepWritable, type DistributiveOmit, type DistributivePick, type Either, type LayoutEvent, type Path, type Position, type Rect$1 as Rect, type Side, type TargetElement, addStyleValues, convertRemToPixels, detectOverflow, flipPosition, get, getDateString, getElementRect, getOffsetByPosition, isDefined, isRecord, range, toZeroPadded, useBackHandler, useCallbackRef, useComposedRef, useControllableState, useEscapeEvent, useInView, useIsomorphicLayoutEffect, useLayoutEvent, useObjectMemo, useSafeDeps, uuidV4 };