/** * Project management service for NeuBird API * Handles listing projects, getting project details, and managing default project */ import { HttpClient } from '../utils/http-client.js'; import { AuthenticationService } from './auth.service.js'; import { Project } from '../types/neubird.js'; import { StateProvider } from './state.service.js'; /** * Project management service */ export declare class ProjectService { private httpClient; private authService; private config; private projectCache; private defaultProjectUuid; private stateProvider?; private userIdentifier?; constructor(httpClient: HttpClient, authService: AuthenticationService); /** * Attach a state provider and user identifier for persistence (used in HTTP/server mode) */ setPersistenceContext(stateProvider: StateProvider, userIdentifier: string): void; /** * Initialize default project from an external source without re-persisting */ setDefaultProjectFromState(projectUuid: string): void; /** * List all projects, using cache if available */ listProjects(includeInactive?: boolean): Promise; /** * Get a specific project by UUID */ getProject(projectUuid: string): Promise; /** * Get the default project (from config or first active project) */ getDefaultProject(): Promise; /** * Set the default project UUID (persisted to state file) */ setDefaultProject(projectUuid: string): void; /** * Get the current default project UUID (if set) */ getDefaultProjectUuid(): string | null; /** * Check if project cache is still valid */ private isCacheValid; /** * Filter projects by state */ private filterProjects; /** * Create a new project */ createProject(name: string, description?: string, iconStyle?: string): Promise; /** * Add connections to a project */ addConnectionsToProject(projectUuid: string, connectionUuids: string[]): Promise; /** * Update a project's details */ updateProject(projectUuid: string, name?: string, description?: string, iconStyle?: string): Promise; /** * Delete a project */ deleteProject(projectUuid: string): Promise; /** * Get detailed project information */ getProjectDetails(projectUuid: string): Promise; /** * Remove connections from a project */ removeConnectionsFromProject(projectUuid: string, connectionUuids: string[]): Promise; /** * Clear project cache (useful for testing or forced refresh) */ clearCache(): void; }