import type {ReactNodeList, Wakeable} from 'shared/ReactTypes';
import type {Lanes} from './ReactFiberLane';
import type {SpawnedCachePool} from './ReactFiberCacheComponent';
import type {Transition} from 'react/src/ReactStartTransition';
import type {TracingMarkerInstance} from './ReactFiberTracingMarkerComponent';
import type {RetryQueue} from './ReactFiberSuspenseComponent';
type OffscreenMode = 'hidden' | 'unstable-defer-without-hiding' | 'visible';
export type LegacyHiddenProps = {
mode?: OffscreenMode | null | void,
children?: ReactNodeList,
};
export type OffscreenProps = {
mode?: OffscreenMode | null | void,
children?: ReactNodeList,
};
export type OffscreenState = {
baseLanes: Lanes,
cachePool: SpawnedCachePool | null,
};
export type OffscreenQueue = {
transitions: Array<Transition> | null,
markerInstances: Array<TracingMarkerInstance> | null,
retryQueue: RetryQueue | null,
};
type OffscreenVisibility = number;
export const OffscreenVisible = 0b001;
export const OffscreenPassiveEffectsConnected = 0b010;
export type OffscreenInstance = {
_visibility: OffscreenVisibility,
_pendingMarkers: Set<TracingMarkerInstance> | null,
_transitions: Set<Transition> | null,
_retryCache: WeakSet<Wakeable> | Set<Wakeable> | null,
};