import { CreateSpaceRequest, CreateSpaceResponse, GetSpaceResponse, UpdateSpaceRequest, UpdateSpaceResponse, DeleteSpaceResponse, GetSpaceDefaultItemsResponse, GetSpacesByTypeResponse } from '../../models/SpaceDTO';
/**
 * Create a new workspace space.
 * @param token - Authentication token
 * @param data - Space creation configuration
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the created space response
 */
export declare const createSpace: (token: string, data: CreateSpaceRequest, baseUrl?: string) => Promise<CreateSpaceResponse>;
/**
 * Get a space by UID.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the space response
 */
export declare const getSpace: (token: string, uid: string, baseUrl?: string) => Promise<GetSpaceResponse>;
/**
 * Update a space (owner updating their own space).
 * @param token - Authentication token
 * @param uid - Space UID
 * @param data - Update data (supports arbitrary Solr fields)
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the updated space response
 */
export declare const updateSpace: (token: string, uid: string, data: UpdateSpaceRequest, baseUrl?: string) => Promise<UpdateSpaceResponse>;
/**
 * Update a user-specific space (e.g., org admin managing another user's space).
 * @param token - Authentication token
 * @param uid - Space UID
 * @param userId - User ID
 * @param data - Update data (supports arbitrary Solr fields)
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the updated space response
 */
export declare const updateUserSpace: (token: string, uid: string, userId: string, data: UpdateSpaceRequest, baseUrl?: string) => Promise<UpdateSpaceResponse>;
/**
 * Delete a space and all its contents.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the delete response
 */
export declare const deleteSpace: (token: string, uid: string, baseUrl?: string) => Promise<DeleteSpaceResponse>;
/**
 * Get default items (notebook UID and document UID) for a space.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the default items response
 */
export declare const getSpaceDefaultItems: (token: string, uid: string, baseUrl?: string) => Promise<GetSpaceDefaultItemsResponse>;
/**
 * Get spaces by type (e.g., 'project', 'workspace', 'course').
 * @param token - Authentication token
 * @param type - Space type to filter by
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the spaces response
 */
export declare const getSpacesByType: (token: string, type: string, baseUrl?: string) => Promise<GetSpacesByTypeResponse>;
/**
 * Make a space public.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the updated space response
 */
export declare const makeSpacePublic: (token: string, uid: string, baseUrl?: string) => Promise<UpdateSpaceResponse>;
/**
 * Make a space private.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the updated space response
 */
export declare const makeSpacePrivate: (token: string, uid: string, baseUrl?: string) => Promise<UpdateSpaceResponse>;
/**
 * Export a space and its contents.
 * @param token - Authentication token
 * @param uid - Space UID
 * @param baseUrl - Base URL for the API
 * @returns Promise resolving to the export data
 */
export declare const exportSpace: (token: string, uid: string, baseUrl?: string) => Promise<any>;
