import { Observable } from 'rxjs';
import { Node, SiteBodyCreate, SiteEntry, SiteGroupEntry, SiteGroupPaging, SiteMemberEntry, SiteMemberPaging, SiteMembershipBodyCreate, SiteMembershipBodyUpdate, SiteMembershipRequestWithPersonPaging, SitePaging, SitesApi } from '@alfresco/js-api';
import { AlfrescoApiService } from '../../services/alfresco-api.service';
import * as i0 from "@angular/core";
export declare class SitesService {
    private apiService;
    private _sitesApi;
    get sitesApi(): SitesApi;
    constructor(apiService: AlfrescoApiService);
    /**
     * Create a site
     *
     * @param siteBody SiteBodyCreate to create site
     * @returns site SiteEntry
     */
    createSite(siteBody: SiteBodyCreate): Observable<SiteEntry>;
    /**
     * Gets a list of all sites in the repository.
     *
     * @param opts Options supported by JS-API
     * @returns List of sites
     */
    getSites(opts?: any): Observable<SitePaging>;
    /**
     * Gets the details for a site.
     *
     * @param siteId ID of the target site
     * @param opts Options supported by JS-API
     * @returns Information about the site
     */
    getSite(siteId: string, opts?: any): Observable<SiteEntry | any>;
    /**
     * Deletes a site.
     *
     * @param siteId Site to delete
     * @param permanentFlag True: deletion is permanent; False: site is moved to the trash
     * @returns Null response notifying when the operation is complete
     */
    deleteSite(siteId: string, permanentFlag?: boolean): Observable<any>;
    /**
     * Gets a site's content.
     *
     * @param siteId ID of the target site
     * @returns Site content
     */
    getSiteContent(siteId: string): Observable<SiteEntry | any>;
    /**
     * Gets a list of all a site's members.
     *
     * @param siteId ID of the target site
     * @returns Site members
     */
    getSiteMembers(siteId: string): Observable<SiteEntry | any>;
    /**
     * Gets a list of all a site's members.
     *
     * @param siteId ID of the target site
     * @param opts Optional parameters supported by JS-API
     * @returns Observable<SiteMemberPaging>
     */
    listSiteMemberships(siteId: string, opts: any): Observable<SiteMemberPaging>;
    /**
     * Looks for a site inside the path of a Node and returns its guid if it finds one.
     * (return an empty string if no site is found)
     *
     * @param node Node to look for parent site
     * @returns Site guid
     */
    getSiteNameFromNodePath(node: Node): string;
    /**
     * Gets a list of site membership requests.
     *
     * @param opts Options supported by JS-API
     * @returns Site membership requests
     */
    getSiteMembershipRequests(opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * Creates a site membership for person **personId** on site **siteId**.
     *
     * @param siteId The identifier of a site
     * @param siteMembershipBodyCreate The person to add and their role
     * @param opts Optional parameters
     * @returns Observable<SiteMemberEntry>
     */
    createSiteMembership(siteId: string, siteMembershipBodyCreate: SiteMembershipBodyCreate, opts?: any): Observable<SiteMemberEntry>;
    /**
     * Update a site membership
     *
     * @param siteId The identifier of a site.
     * @param personId The identifier of a person.
     * @param siteMembershipBodyUpdate The persons new role
     * @param opts Optional parameters
     * @returns Observable<SiteMemberEntry>
     */
    updateSiteMembership(siteId: string, personId: string, siteMembershipBodyUpdate: SiteMembershipBodyUpdate, opts?: any): Observable<SiteMemberEntry>;
    /**
     * Delete a site membership
     *
     * @param siteId The identifier of a site.
     * @param personId The identifier of a person.
     * @returns Null response notifying when the operation is complete
     */
    deleteSiteMembership(siteId: string, personId: string): Observable<void>;
    /**
     * Accept site membership requests.
     *
     * @param siteId The identifier of a site.
     * @param inviteeId The invitee user name.
     * @param opts Options supported by JS-API
     * @returns  Null response notifying when the operation is complete
     */
    approveSiteMembershipRequest(siteId: string, inviteeId: string, opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * Reject site membership requests.
     *
     * @param siteId The identifier of a site.
     * @param inviteeId The invitee user name.
     * @param opts Options supported by JS-API
     * @returns  Null response notifying when the operation is complete
     */
    rejectSiteMembershipRequest(siteId: string, inviteeId: string, opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * List group membership for site
     *
     * @param siteId The identifier of a site.
     * @param opts Options supported by JS-API
     * @returns  Observable<SiteGroupPaging>
     */
    listSiteGroups(siteId: string, opts?: any): Observable<SiteGroupPaging>;
    /**
     * Create a site membership for group
     *
     * @param siteId The identifier of a site.
     * @param siteMembershipBodyCreate The Group to add and its role
     * @returns Observable<SiteGroupEntry>
     */
    createSiteGroupMembership(siteId: string, siteMembershipBodyCreate: SiteMembershipBodyCreate): Observable<SiteGroupEntry>;
    /**
     * Get information about site membership of group
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @returns Observable<SiteGroupEntry>
     */
    getSiteGroupMembership(siteId: string, groupId: string): Observable<SiteGroupEntry>;
    /**
     * Update site membership of group
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @param siteMembershipBodyUpdate The group new role
     * @returns Observable<SiteGroupEntry>
     */
    updateSiteGroupMembership(siteId: string, groupId: string, siteMembershipBodyUpdate: SiteMembershipBodyUpdate): Observable<SiteGroupEntry>;
    /**
     * Delete a group membership for site
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @returns Observable<void>
     */
    deleteSiteGroupMembership(siteId: string, groupId: string): Observable<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SitesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SitesService>;
}
