import type { SysLink, MetaSysProps, DefaultElements, MakeRequest } from '../common-types';
export type SpaceMembershipProps = {
    sys: MetaSysProps & {
        space: SysLink;
        user: SysLink;
    };
    user: SysLink;
    admin: boolean;
    roles: SysLink[];
};
export type CreateSpaceMembershipProps = Omit<SpaceMembershipProps, 'sys' | 'user'> & {
    email: string;
};
export interface SpaceMembership extends SpaceMembershipProps, DefaultElements<SpaceMembershipProps> {
    /**
     * Deletes this object on the server.
     * @returns Promise for the deletion. It contains no data, but the Promise error case should be handled.
     * @example ```javascript
     * const contentful = require('contentful-management')
     *
     * const client = contentful.createClient({
     *   accessToken: '<content_management_api_key>'
     * })
     *
     * client.getSpace('<space_id>')
     * .then((space) => space.getSpaceMembership('<spaceMembership_id>'))
     * .then((spaceMembership) => spaceMembership.delete())
     * .then(() => console.log(`spaceMembership deleted.`))
     * .catch(console.error)
     * ```
     */
    delete(): Promise<void>;
    /**
     * Sends an update to the server with any changes made to the object's properties
     * @returns Object returned from the server with updated changes.
     * @example ```javascript
     * const contentful = require('contentful-management')
     *
     * const client = contentful.createClient({
     *   accessToken: '<content_management_api_key>'
     * })
     *
     * client.getSpace('<space_id>')
     * .then((space) => space.getSpaceMembership('<spaceMembership_id>'))
     * .then((spaceMembership) => {
     *  spaceMembership.name = 'new space membership name'
     * })
     * .then((spaceMembership) => console.log(`spaceMembership ${spaceMembership.sys.id} updated.`))
     * .catch(console.error)
     * ```
     */
    update(): Promise<SpaceMembership>;
}
/**
 * @internal
 * @param makeRequest - function to make requests via an adapter
 * @param data - Raw space membership data
 * @returns Wrapped space membership data
 */
export declare function wrapSpaceMembership(makeRequest: MakeRequest, data: SpaceMembershipProps): SpaceMembership;
/**
 * @internal
 */
export declare const wrapSpaceMembershipCollection: (makeRequest: MakeRequest, data: import("..").CollectionProp<SpaceMembershipProps>) => import("..").Collection<SpaceMembership, SpaceMembershipProps>;
