import { SpaceMember } from './SpaceMember';
import { ISpaceItem } from './SpaceItem';
import { ICourse as ICourse } from './Course';
import { IOrganization } from './Organization';
import { IUser } from './User';
/**
 * Convert the raw space object to {@link ISpace}.
 *
 * @param user Raw space object from DB
 * @returns Space
 */
export declare const asSpace: (raw_space: any) => ISpace;
export type ISpaceVariant = 'default' | 'course' | 'project';
export type IAnySpace = ISpace | ICourse;
export type IBaseSpace = {
    id: string;
    handle: string;
    type: string;
    variant: ISpaceVariant;
    name: string;
    description: string;
    creationDate: Date;
    public: boolean;
    owner: IUser;
    organization?: Partial<IOrganization>;
    members?: SpaceMember[];
};
export type ISpace = IBaseSpace & {
    type: 'space';
    variant: 'default';
    items?: Array<ISpaceItem>;
    itemIds?: Array<string>;
};
export default ISpace;
