import type { OpaqueResponsive } from '~/utilities/opaque-responsive'; /** the pending result is what we return before the responsive value can be determined from the window */ interface PendingResponsiveValueResult { state: 'pending'; } /** the available result is what we return once the responsive value can be determined from the window */ interface AvailableResponsiveValueResult { state: 'available'; value: T; } /** the result is either the pending result or the available result */ type CurrentResponsiveValueResult = PendingResponsiveValueResult | AvailableResponsiveValueResult; /** * This helper returns true if the current responsive value result is available */ export declare function isResponsiveValueAvailable(result: CurrentResponsiveValueResult): result is AvailableResponsiveValueResult; /** * This hook returns the current responsive value for a OpaqueResponsive * object when it is available. * * It will return a tagged object with a state of "inital" until the * value is hydrated on the client. Once the value is hydrated, the * hook will return the current responsive value with a state of "available". * * @warning `useCurrentReponsiveValue` is for working with OpaqueResponsive objects, * try `useCurrentBreakpoint` if you are simply after the current screen size. */ export declare function useCurrentResponsiveValue(values: OpaqueResponsive): CurrentResponsiveValueResult; export {};