import { PermissionScopes } from '../extensibility';
import { SharePoint } from "./ISharePoint";
export declare module Security {
    interface IPermissionRoleDefinition {
        name?: string;
        scope?: PermissionScopes;
        extensionPackageId?: string;
        label?: string;
        useDefaultUserText?: string;
        description?: string;
    }
    interface IPermissionRoleGroup {
        name: string;
        children: Array<IPermissionRole>;
    }
    interface IPermissionRole {
        name?: string;
        url?: string;
        scope?: PermissionScopes;
        extensionPackageId?: string;
        users?: Array<SharePoint.IPeoplePickerPrincipal>;
        defaultUsers?: Array<SharePoint.IPeoplePickerPrincipal>;
        isUseDefaultUsers?: boolean;
        definition?: IPermissionRoleDefinition;
    }
    interface IListItemPermission {
        canViewListItem?: boolean;
        canEditListItem?: boolean;
    }
    interface IGroupPermission {
        canCurrentUserViewMembership?: boolean;
        canCurrentUserManageGroup?: boolean;
        canCurrentUserEditMembership?: boolean;
        groupNotExist?: boolean;
    }
    interface IWebAssociatedGroupsPermission {
        ownerGroup?: IGroupPermission;
        memberGroup?: IGroupPermission;
        visitorGroup?: IGroupPermission;
    }
}
