export interface OAuth { access_token: string; expires_in: number; token_type: string; scope: string; refresh_token: string; } export interface Me { id: string; email: string; first_name: string; last_name: string; organization_id: string; campaign: string; } /** Credentials for a single environment (local, dev, prod, etc.). */ export interface EnvironmentCredentials { oauth?: OAuth; me?: Me; /** User display name when logged in (for display when me is not loaded yet). */ loggedUserName?: string; /** Hubtype API URL for this environment (to detect env switch). */ loggedEnvironmentUrl?: string; } /** Store: one entry per environment so multiple envs can be logged in. */ export type GlobalCredentialsStore = Record; export interface ProviderAccountEntry { id: string; provider: string; is_test: boolean; is_active: boolean; } export interface BotDetail { id: string; name: string; providers?: ProviderAccountEntry[]; [key: string]: unknown; } export type BotRegistryEntry = BotDetail; export type BotsRegistry = Record; export type JSONPrimitive = string | number | boolean | null; export type JSONValue = JSONPrimitive | JSONObject | JSONArray; export type JSONObject = { [member: string]: JSONValue; }; export type JSONArray = JSONValue[];