import { RefObject } from 'react';
import type { AssignableRef, UseControlledStateOutput } from './types';
type AnyFunction = (...args: any[]) => unknown;
export declare const noop: () => void;
export declare function getElementHeight(el: RefObject<HTMLElement> | {
    current?: {
        scrollHeight: number;
    };
}): string | number;
export declare const callAll: (...fns: AnyFunction[]) => (...args: any[]) => void;
export declare function getAutoHeightDuration(height: number | string): number;
export declare function assignRef<RefValueType = any>(ref: AssignableRef<RefValueType> | null | undefined, value: any): void;
/**
 * Passes or assigns a value to multiple refs (typically a DOM node). Useful for
 * dealing with components that need an explicit ref for DOM calculations but
 * also forwards refs assigned by an app.
 *
 * @param refs Refs to fork
 */
export declare function mergeRefs<RefValueType = any>(...refs: (AssignableRef<RefValueType> | null | undefined)[]): ((node: any) => void) | null;
export declare function useControlledState(isExpanded?: boolean, defaultExpanded?: boolean): UseControlledStateOutput;
export declare function useEffectAfterMount(cb: () => void, dependencies: unknown[]): void;
export declare function useUniqueId(idFromProps?: string | null): string | undefined;
export {};
//# sourceMappingURL=utils.d.ts.map