/**
 * CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24
 * Update:: import { IAnyFileItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'

 */
/**
 * COPIED FROM PIVOT TILES ON 2023-12-09
 */
import { IAnyFileItem } from "../../../components/molecules/AnyContent/IAnyContent";
import { IJsxElement } from "../../../types/react/IFPSJSX_Element";
import { IBasicIconInfo } from "../Icons/stdECStorage";
import { IKnownMeta } from "./IKnownMeta";
export interface IItemWithSharingInfo extends IAnyFileItem {
    ItemSharingInfo: IItemSharingInfo;
    SharedWithDetails: string;
    SharedWithUsers: ISharedWithUser[];
    SharedWithUsersId: number[];
    GUID: string;
    AuthorId: number;
    EditorId: number;
    odataEditLink: string;
}
export interface IMySharingInfoSet {
    items: IItemWithSharingInfo[];
    elements: IJsxElement[];
    isLoaded: boolean;
    errMessage: string;
}
export interface IMySharingInfo {
    history: IMySharingInfoSet;
    details: IMySharingInfoSet;
}
export interface ISharedWithUser {
    Title: string;
    Name: string;
    Id: number;
    'odata.type': string;
    'odata.id': string;
}
/**
 * This is details of one sharing event:  one person sharing with another person
 * It should be nexted under the item's IItemSharingInfo which has other item relavant info for later use like FileLeafRef
 * Should be nested under an item as an array of events
 */
export interface ISharingEvent extends IBasicIconInfo {
    key: string;
    keys: string[];
    sharedWith: string;
    sharedBy: string;
    sharedWithShort: string;
    sharedByShort: string;
    DateTime: string;
    TimeMS: number;
    LoginName: string;
    SharedTime: Date;
    FileRef?: string;
    FileLeafRef?: string;
    FileSystemObjectType: number;
    GUID: string;
    odataEditLink: string;
    ServerRedirectedEmbedUrl?: string;
    parentFolder: string;
    AuthorId: number;
    Created: string;
    Modified: string;
    EditorId: number;
    CheckoutUserId: number;
    id: number;
    meta: IKnownMeta[];
}
/**
 * Typical example of ISharedDetail
 *
 "i:0#.f|membership|jr@tenant.onmicrosoft.com": {
      "DateTime": "/Date(1675650083579)/",
      "LoginName": "user1.tenant@mcclickster.onmicrosoft.com"
  },
  */
export interface ISharedDetail {
    [key: string]: {
        DateTime: string;
        LoginName: string;
    };
}
/**
 * IItemSharingInfo is intended to be a sub-object on an item that has sharing.
 * It is used to then contain all the sharing details in a usable object
 */
export interface IItemSharingInfo {
    SharedDetails: ISharedDetail[];
    SharedEvents: ISharingEvent[];
    SharedWithUsers: ISharedWithUser[];
    SharedWithUsersId: number[];
    Title: string;
    Id: number;
    ID: number;
    GUID: string;
    odataEditLink: string;
    HasUniqueRoleAssignments: boolean;
    FileRef: string;
    FileLeafRef: string;
    FileSystemObjectType: number;
    ServerRedirectedEmbedUrl: string;
    ContentTypeId: string;
    AuthorId: number;
    Created: string;
    Modified: string;
    EditorId: number;
    CheckoutUserId: number;
}
export declare function createEmptyItemSharingInfo(item: IItemWithSharingInfo): IItemSharingInfo;
//# sourceMappingURL=IItemWithSharingInfo.d.ts.map