import { UserGroupPermissionBuilder } from './userGroupPermissionBuilder';
import { UserGroupsPermissionsBaseBuilder } from './userGroupsPermissionsBaseBuilder';
export declare class UserGroupBuilder {
    name: string;
    icon: string;
    sections: string[];
    languages: string[];
    hasAccessToAllLanguages: boolean;
    documentStartNodeId: string;
    documentRootAccess: boolean;
    mediaStartNodeId: string;
    mediaRootAccess: boolean;
    fallbackPermissionsBuilder: UserGroupsPermissionsBaseBuilder;
    userGroupPermissionBuilder: UserGroupPermissionBuilder;
    description: string;
    elementRootAccess: boolean;
    elementStartNodeId: string;
    constructor();
    withName(name: string): this;
    withIcon(icon: string): this;
    addSection(section: string): this;
    addLanguage(language: string): this;
    withHasAccessToAllLanguages(hasAccessToAllLanguages: boolean): this;
    withDocumentStartNodeId(documentStartNodeId: string): this;
    withDocumentRootAccess(documentRootAccess: boolean): this;
    withMediaStartNodeId(mediaStartNodeId: string): this;
    withMediaRootAccess(mediaRootAccess: boolean): this;
    addFallbackPermission(): UserGroupsPermissionsBaseBuilder;
    addPermissions(): UserGroupPermissionBuilder;
    withDescription(description: string): this;
    withElementStartNodeId(elementStartNodeId: string): this;
    withElementRootAccess(elementRootAccess: boolean): this;
    build(): {
        name: string;
        alias: string;
        icon: string;
        sections: string[];
        languages: string[];
        hasAccessToAllLanguages: boolean;
        documentStartNode: {
            id: string;
        } | null;
        documentRootAccess: boolean;
        mediaStartNode: {
            id: string;
        } | null;
        mediaRootAccess: boolean;
        fallbackPermissions: any[];
        permissions: ({
            $type: string;
            document: {
                id: string;
            } | null;
            verbs: any[];
        } | {
            $type: string;
            element: {
                id: string;
            } | null;
            verbs: any[];
        } | {
            $type: string;
            documentType: {
                id: string;
            } | null;
            propertyType: {
                id: string;
            } | null;
            verbs: any[];
        })[];
        description: string;
        elementStartNode: {
            id: string;
        } | null;
        elementRootAccess: boolean;
    };
}
