import { Glue42Office } from "../../glue4office"; import { Glue42Core } from "@glue42/core"; export declare type OnAddinStatusChangedCallback = (args: { connected: boolean; }) => any; export declare type OnEmailReceivedCallback = (email: Glue42Office.Outlook.Email) => any; export declare type OnTaskCreatedCallback = (task: Glue42Office.Outlook.Task) => any; export declare type TrackEmailCallback = (args: { conversationIds: Glue42Office.Outlook.T42Id[]; email: Glue42Office.Outlook.Email; }) => any; export declare type UntrackEmailCallback = (args: { conversationIds: Glue42Office.Outlook.T42Id[]; emailIds: Glue42Office.Outlook.T42Id[]; }) => any; export declare type TrackCalendarEventCallback = (args: { conversationIds: Glue42Office.Outlook.T42Id[]; event: Glue42Office.Outlook.T42Appointment | Glue42Office.Outlook.T42Meeting; }) => any; export declare type UntrackCalendarEventCallback = (args: { conversationIds: Glue42Office.Outlook.T42Id[]; eventIds: Glue42Office.Outlook.T42Id[]; }) => any; export declare type OnSecureReplyCallback = (email: Glue42Office.Outlook.Email) => any; export declare type OnDisplaySecureEmailCallback = (email: Glue42Office.Outlook.Email) => any; export declare type AnonymousFunction = () => any; export interface Config { agm: Glue42Core.AGM.API; } export interface CreateItemObject { ItemType: string; Cookie: string; OnSendMethod: string; OnCancelMethod: string; AttachFiles?: string[]; PropertiesAsJSON?: string; t42value?: Glue42Office.Outlook.EmailParams | Glue42Office.Outlook.TaskParams; } export interface TrackParams { callback: string; conversationIds: Glue42Office.Outlook.T42Id[]; cookie: string; forceNew: boolean; email?: Glue42Office.Outlook.T42Email; item?: Glue42Office.Outlook.T42Appointment | Glue42Office.Outlook.T42Meeting; } export interface UntrackParams { callback: string; conversationIds: Glue42Office.Outlook.T42Id[]; cookie: string; forceNew: boolean; emailIds?: Glue42Office.Outlook.T42Id[]; itemIds?: Glue42Office.Outlook.T42Id[]; } export interface T42ValueEmail { attachments?: string[] | Glue42Office.Outlook.AttachmentParams[]; bcc?: Glue42Office.Outlook.T42Contact[]; body?: string; bodyHtml?: string; cc?: Glue42Office.Outlook.T42Contact[]; cookie?: string; onCancelCallback?: (args: { cookie: string; itemID: string; }) => any; onSendCallback?: (email: Glue42Office.Outlook.T42Email) => any; subject?: string; to?: Glue42Office.Outlook.T42Contact[]; [key: string]: any; } export interface T42ValueTask { attachments?: string[] | Glue42Office.Outlook.AttachmentParams[]; body?: string; cookie?: string; startDate?: Date | string | number; dueDate?: Date | string | number; onCancelCallback?: (args: { cookie: string; itemID: string; }) => any; onSaveCallback?: (task: Glue42Office.Outlook.T42Task) => any; importance?: number; reminderTime?: Date | string | number; subject?: string; [key: string]: any; } export interface CreateLocalEmailParams { email: T42ValueEmail; location: { parentItemIds?: Glue42Office.Outlook.T42Id[]; folderPath?: string; defaultFolderIndex?: Glue42Office.Outlook.CommonOutlookFolder; }; customProperties?: object; [key: string]: any; } export interface OlDefaultFolders { $SentMail: number; $Inbox: number; [key: string]: any; } export declare enum TaskPriority { low = 0, normal = 1, high = 2 } export interface KeyedCollection { containsKey: (key: string) => boolean; remove: (key: string) => void; } export interface PromiseCallback { resolve: (res: any) => void; reject: (errMessage: string) => void; } export interface CreateItem extends KeyedCollection { add: (key: string, value: CreateItemCallbacks) => void; get: (key: string) => CreateItemCallbacks; } export interface CreateItemCallbacks { onSent?: (item: Glue42Office.Outlook.Email | Glue42Office.Outlook.Task) => any; onCanceled: () => any; } export interface GetAttachment extends KeyedCollection { add: (key: string, value: GetAttachmentCallback) => void; get: (key: string) => GetAttachmentCallback; } export interface GetAttachmentCallback extends PromiseCallback { callback: (percent: number) => number; } export interface ChunkData extends KeyedCollection { add: (key: string, data: string) => void; get: (key: string) => string[]; } export interface GetItemAsMsg extends KeyedCollection { add: (key: string, data: PromiseCallback) => void; get: (key: string) => PromiseCallback; } export interface TrackItem { containsIds: (ids: Glue42Office.Outlook.T42Id[]) => boolean; add: (emailIds: Glue42Office.Outlook.T42Id[], ids: Glue42Office.Outlook.T42Id[]) => void; remove: (ids: Glue42Office.Outlook.T42Id[]) => void; get: (ids: Glue42Office.Outlook.T42Id[]) => Glue42Office.Outlook.T42Id[]; } export interface ChunkFileParams { chunkFile: Glue42Office.Outlook.AttachmentParams; chunkData: string; }