import { UpdateSpaceProps } from "./useUpdateSpace";
import { SpaceDetailed, SpaceIncludeParam, SpacePreview } from "../../interfaces/models/Space";
import { SpaceMemberStatus } from "../../interfaces/models/SpaceMember";
export interface UseSpaceDataProps {
    space?: SpaceDetailed;
    spaceId?: string | undefined | null;
    shortId?: string | undefined | null;
    slug?: string | undefined | null;
    include?: SpaceIncludeParam;
}
export interface UseSpaceDataValues {
    space: SpaceDetailed | null | undefined;
    setSpace: React.Dispatch<React.SetStateAction<SpaceDetailed | null | undefined>>;
    isMember: boolean;
    isAdmin: boolean;
    isModerator: boolean;
    canPost: boolean;
    canModerate: boolean;
    canRead: boolean;
    membershipStatus: SpaceMemberStatus | null;
    isPending: boolean;
    isBanned: boolean;
    breadcrumb: SpacePreview[];
    parentSpace: SpacePreview | null;
    childSpaces: SpacePreview[];
    updateSpace(props: Pick<UpdateSpaceProps, "update">): Promise<SpaceDetailed | undefined>;
    deleteSpace: () => Promise<void>;
    joinSpace: () => Promise<void>;
    leaveSpace: () => Promise<void>;
    loading: boolean;
    error: string | null;
}
declare function useSpaceData({ spaceId, shortId, slug, space: spaceProp, include, }: UseSpaceDataProps): UseSpaceDataValues;
export default useSpaceData;
