There are no bids and offers. A pool holds reserves of two or more tokens, and a fixed formula decides what you get for what you put in. Trading moves the ratio of reserves, which moves the price, so the pool always has a quote and never refuses a trade, though it may quote you a terrible one.
Anyone can supply the inventory. Depositors add both sides, receive an lp-token representing their share, and collect a fee on every trade, typically 0.01% to 1% depending on the pair. In exchange they take on impermanent-loss and whatever risk the tokens carry.
What an AMM cannot do is decide fair value; it only reacts. Arbitrageurs keep pool prices near the wider market, and that arbitrage profit is paid by liquidity providers. This is why the same pair often prints a different price on a dex than on a cex for a few seconds after a fast move.
Related: constant-product-formula, liquidity-pool, lp-token, impermanent-loss