react-native-google-mobile-ads
    Preparing search index...

    Type Alias UseAdPoolResult

    UseAdPoolResult: UseAdPoolResultBase & (
        | { error: null; pool: null; status: "creating" }
        | { error: null; pool: AdPool; status: "ready" }
        | { error: null; pool: AdPool; status: "ready-degraded" }
        | { error: AdError; pool: null; status: "error" }
        | { error: null; pool: null; status: "absent" }
    )

    Pool lookup state.

    A discriminated union rather than ready + degraded booleans: those two are different axes, so their combinations included an unreachable state (degradation is only knowable once create() has resolved) while omitting the states an async create() actually produces.

    absent is distinct from creating on purpose. Looking up a poolId no provider registered is a common misconfiguration that would otherwise be indistinguishable from a slow create, forever.

    Degrade reasons are not mirrored here: read pool.resolved.degradeReasons, which is the single source of truth.