import { ISiteGroupInfo } from "../../../types/@pnp/@2.14.0/sp/site-groups";
import { ISiteUserInfo } from "../../../types/@pnp/@2.14.0/sp/site-users";
export type IPermKnown = 'Exact' | 'Similar' | 'Unknown';
export interface IUserPermissionLevel {
    Name: IPermName;
    Description: string;
    simple?: number;
    medium?: number;
    complex?: number;
    color?: string;
    common?: boolean;
    teams?: boolean;
    known?: IPermKnown;
}
export type IPrincipalTypeText = 'None' | 'User' | 'DistributionList' | 'SecurityGroup' | 'SharePointGroup' | 'All' | 'Unknown';
export declare const PrincipalTypes: any;
export interface IThisPermissionUser {
    Id: number;
    Title: string;
    shortTitle: string;
    Description: string;
    PrincipalType: number;
    PrincipalText: IPrincipalTypeText;
    IsSiteAdmin: boolean;
    UserPrincipalName: string;
}
export interface IThisPermissionDelta {
    Id: number;
    Title: string;
    shortTitle: string;
    Description: string;
    PrincipalType: number;
    PrincipalText: IPrincipalTypeText;
    IsSiteAdmin: boolean;
    UserPrincipalName: string;
    parentHighPriority: number;
    parentPermissions: IUserPermissionLevel[];
    childHighPriority: number;
    childPermissions: IUserPermissionLevel[];
    direction: 'up' | 'down' | 'equal';
    dirIcon: 'ArrowUpRight8' | 'ArrowDownRight8' | 'CalculatorEqualTo';
    color: string;
}
export interface IAllUserPermission {
    userId: number;
    userTitle: string;
    permissions: IUserPermissionLevel[];
    userInfo: IThisPermissionUser;
    highPriority: number;
    allPriorities: number[];
    onlyLimited: boolean;
    common?: boolean;
    known?: IPermKnown;
}
export interface IAllComparePermission {
    userId: number;
    permNames: string[];
    highPriority: number;
}
export interface IGroupedPermission {
    name: string;
    description: string;
    priority: number;
    users: IAllUserPermission[];
}
export interface IMyPermissions {
    idsToGet: number[];
    isLoading: boolean;
    errMessage: string;
    HasUniqueRoleAssignments: boolean;
    theseUsers: (ISiteGroupInfo | ISiteUserInfo)[];
    allUserPermissions: IAllUserPermission[];
    sortedPermissions: IAllUserPermission[];
    comparePermissions: IAllComparePermission[];
    groupedPermissions: IGroupedPermission[];
    limtedPermissions: boolean;
}
export type IPermName = 'Full Control' | 'Manage Hierarchy' | 'Design' | 'Edit' | 'Approve' | 'Override-List-Behaviors' | 'Contribute' | 'Contribute-No-Delete' | 'Create-Only' | 'Read' | 'Restricted Read' | 'View' | 'Limited Access' | 'Web-Only Limited Access' | 'Restricted Interfaces for Translation' | 'Unknown Permission';
export interface IPerm {
    Name: IPermName;
    simple: number;
    medium: number;
    complex: number;
    color?: string;
    common: boolean;
    teams: boolean;
    known: IPermKnown;
}
export interface IPermissionLists {
    idsToGet: string[];
    isLoading: boolean;
    errMessage: string;
    restFilter: string;
    selectString: string;
    titles: string[];
    lists: IPermissionList[];
}
export interface IPermissionList {
    Title: string;
    Id: string;
    ItemCount: number;
    EntityTypeName: string;
    HasUniqueRoleAssignments: boolean;
    Hidden: boolean;
    BaseType: number;
    BaseTemplate: number;
    AllowContentTypes: boolean;
    LastItemModifiedDate: string;
    ForceCheckout: boolean;
    EnableVersioning: boolean;
    EnableMinorVersions: boolean;
    MajorVersionLimit: number;
    MajorWithMinorVersionsLimit: number;
    NoCrawl: boolean;
    Created: string;
    listURL: string;
}
/**
 * 2025-02-21:  Duplicate... use one at
 *  src\types\@pnp\@2.14.0\sp\security.ts
 */
//# sourceMappingURL=IMyPermissions.d.ts.map