/** * Cloud quota management for tiered pricing. * Only enforced for cloud.aidimag.com, not custom self-hosted servers. */ export interface UserPlan { tier: "free" | "starter" | "developer" | "team" | "custom"; memoryLimit: number | null; apiKeyLimit: number; syncRateLimit: string | null; } export interface QuotaStatus { currentMemories: number; limit: number | null; available: number; exceeded: boolean; plan: UserPlan; } export interface SelectionChoice { action: "update-only" | "select" | "replace" | "upgrade" | "cancel"; selectedIds?: string[]; } /** * Check if quota enforcement should apply for this server. * Only enforces for official cloud.aidimag.com, not custom servers. */ export declare function shouldEnforceQuota(serverUrl: string): boolean; /** * Get user's current plan from the cloud server. * Returns null if server doesn't support plan API or user is on custom server. */ export declare function getUserPlan(serverUrl: string, token: string, fetchFn?: typeof fetch): Promise; /** * Calculate quota status based on current cloud state and user plan. */ export declare function calculateQuotaStatus(cloudMemoryCount: number, plan: UserPlan): QuotaStatus; /** * Format quota status for display. */ export declare function formatQuotaMessage(status: QuotaStatus): string; /** * Get upgrade URL for the cloud service. */ export declare function getUpgradeUrl(serverUrl: string): string;