/** IG soft-blocked profile browsing (302 → home) while the session is still valid. Re-login does NOT help; wait/cooldown does. */
export class IgRateLimitError extends Error {
  constructor(message: string) { super(message); this.name = 'IgRateLimitError'; }
}
/** The session is logged out / IG demands login (redirect to /accounts/login or a login wall). */
export class IgLoginRequiredError extends Error {
  constructor(message: string) { super(message); this.name = 'IgLoginRequiredError'; }
}
/** The account no longer exists (deleted/renamed): IG renders its "page unavailable" shell.
 *  Permanent for this username — callers should stop collecting it, not retry. */
export class IgAccountNotFoundError extends Error {
  constructor(message: string) { super(message); this.name = 'IgAccountNotFoundError'; }
}
/** The account is private and the logged-in session doesn't follow it: it exists but serves
 *  no posts. Not permanent (it may go public), but retrying it every run is waste — callers
 *  treat it like a dead channel (excluded + slow re-probe) rather than a collection failure. */
export class IgPrivateAccountError extends Error {
  constructor(message: string) { super(message); this.name = 'IgPrivateAccountError'; }
}
