/**
 * WorkspaceClient
 *
 * Client for workspace and project management API
 */
import type { ClientConfig } from "./types";
import type { Workspace, Project, CreateWorkspaceRequest, UpdateWorkspaceRequest, CreateProjectRequest, UpdateProjectRequest, FileItem } from "./types";
export declare class WorkspaceClient {
    private baseURL;
    private headers;
    constructor(config: ClientConfig, tenantId?: string);
    private request;
    listWorkspaces(): Promise<Workspace[]>;
    createWorkspace(data: CreateWorkspaceRequest): Promise<Workspace>;
    getWorkspace(workspaceId: string): Promise<Workspace>;
    updateWorkspace(workspaceId: string, updates: UpdateWorkspaceRequest): Promise<Workspace>;
    deleteWorkspace(workspaceId: string): Promise<void>;
    listProjects(workspaceId: string): Promise<Project[]>;
    createProject(workspaceId: string, data: CreateProjectRequest): Promise<Project>;
    getProject(workspaceId: string, projectId: string): Promise<Project>;
    updateProject(workspaceId: string, projectId: string, updates: UpdateProjectRequest): Promise<Project>;
    deleteProject(workspaceId: string, projectId: string): Promise<void>;
    listPath(workspaceId: string, projectId: string, path?: string): Promise<FileItem[]>;
    readFile(workspaceId: string, projectId: string, path: string, offset?: number, limit?: number): Promise<{
        content: string;
        offset: number;
        limit: number;
    }>;
    /**
     * Upload a file to the workspace project storage.
     *
     * Uses multipart/form-data against:
     * POST /api/workspaces/:workspaceId/projects/:projectId/uploadfile
     */
    uploadFile(workspaceId: string, projectId: string, file: File | Blob, path?: string): Promise<FileItem>;
    getFileDownloadUrl(workspaceId: string, projectId: string, filePath: string): string;
}
//# sourceMappingURL=workspace-client.d.ts.map