/** * Standalone Supabase Management API Client for vcsys-cli * Handles direct OAuth authentication with Supabase and provides typed methods */ export interface SupabaseOrganization { id: string; name: string; slug: string; billing_email: string; tier: string; } export interface SupabaseProject { id: string; ref: string; name: string; organization_id: string; region: string; status: string; database?: { host: string; version: string; }; } export interface SupabaseApiKeys { anon: string; service_role: string; } export interface CreateProjectRequest { organization_id: string; name: string; region: string; db_pass: string; kps_enabled?: boolean; plan?: string; } export declare class SupabaseManagementError extends Error { status?: number; requiresReauth: boolean; constructor(message: string, status?: number, requiresReauth?: boolean); } export declare class SupabaseManagementClient { private baseUrl; private oAuthBaseUrl; private apiClient; private tokenStorage; constructor(); /** * Authenticate with Supabase OAuth */ authenticate(): Promise; /** * Check if user is authenticated */ isAuthenticated(): Promise; /** * Authenticate using browser OAuth flow */ private authenticateWithBrowser; /** * Authenticate using manual token entry */ private authenticateWithToken; /** * Make authenticated request to Supabase Management API */ private makeRequest; /** * Refresh OAuth tokens */ private refreshTokens; /** * Clear stored tokens */ clearStoredTokens(): Promise; /** * Logout */ logout(): Promise; /** * Lists all organizations the user has access to */ listOrganizations(): Promise; /** * Lists all projects in an organization */ listProjects(organizationId?: string): Promise; /** * Creates a new Supabase project */ createProject(projectData: CreateProjectRequest): Promise; /** * Gets a specific project by reference */ getProject(projectRef: string): Promise; /** * Gets API keys for a project */ getProjectApiKeys(projectRef: string): Promise; /** * Executes SQL on a project's database */ executeSQL(projectRef: string, sql: string): Promise; /** * Gets project configuration including environment variables */ getProjectConfig(projectRef: string): Promise; /** * Generate environment variables for a project */ generateEnvVars(projectRef: string): Promise>; }