import { UpgradePromptDetail } from '../components/UpgradePromptModal'; import { STORAGE_QUOTA_EXCEEDED_CODE, RESOURCE_CAP_EXCEEDED_CODE, QUOTA_EXHAUSTED_CODE } from '../utils/quotaErrors'; export interface PlanUsageEntry { resource: string; current: number; limit: number | null; unit?: 'bytes' | 'count'; } export interface PlanUsageSnapshot { planName: string; isFree: boolean; usage: PlanUsageEntry[]; } /** * Window event consumers can dispatch to share the latest plan/usage snapshot * (e.g. from the host shell's session query) without forcing every consumer * to wire its own GraphQL query. */ export declare const PLAN_USAGE_SNAPSHOT_EVENT = "burdenoff:plan-usage-snapshot"; export declare function publishPlanUsageSnapshot(snapshot: PlanUsageSnapshot): void; export interface UseUpgradePromptOptions { /** Threshold for `nearLimit`/`isApproaching` flags. Defaults to 0.8. */ warnAtPercent?: number; /** Filter to a single resource (e.g. "storage"). */ resource?: string; } export interface UseUpgradePromptResult { plan: PlanUsageSnapshot | null; isFree: boolean; /** True when ANY tracked resource is at or above `warnAtPercent`. */ isApproachingAnyLimit: boolean; /** Resource entries currently at/over `warnAtPercent`. */ approachingLimits: PlanUsageEntry[]; /** Surface the upgrade modal manually. */ promptUpgrade: (detail?: Partial) => void; /** Inspect a thrown error; if it's an upgrade error, prompt + return true. */ reportError: (err: unknown) => boolean; } /** * `useUpgradePrompt` — listens to plan/usage snapshots published via * `publishPlanUsageSnapshot` (set up once in the shell from the user/session * query) and exposes the helpers MFEs need for cap-triggered + key-event CTAs. * * - `isApproachingAnyLimit` flips true at 80% of any cap by default * - `promptUpgrade(detail?)` opens the global modal * - `reportError(err)` opens the modal when err matches an upgrade code */ export declare function useUpgradePrompt(options?: UseUpgradePromptOptions): UseUpgradePromptResult; export { STORAGE_QUOTA_EXCEEDED_CODE, RESOURCE_CAP_EXCEEDED_CODE, QUOTA_EXHAUSTED_CODE }; //# sourceMappingURL=useUpgradePrompt.d.ts.map