import { AppSh, AppShConfig, AppShPlugin } from 'app-sh';

type O365Config = {
    appSh?: AppSh;
    appShConfig?: AppShConfig;
    appId: string;
    clientSecret: string;
    tenantId: string;
    grantType?: string;
    resource?: string;
    tokenGracePeriod?: number;
};
type MessageAttachment = {
    name: string;
    contentType: string;
    contentB64: string;
};
declare class O365 extends AppShPlugin {
    private _appId;
    private _clientSecret;
    private _tenantId;
    private _grantType;
    private _resource;
    private _tokenGracePeriod;
    private _tokenTimeout;
    private _token;
    constructor(o365Config: O365Config);
    login(): Promise<void>;
    logout(): Promise<void>;
    stop(): Promise<void>;
    loggedIn(): Promise<boolean>;
    sendOutlookMessage(toRecipients: string[], ccRecipients: string[], bccRecipients: string[], fromUser: string, subject: string, content: string, contentType: "text" | "html", refCode?: string, attachments?: MessageAttachment[]): Promise<boolean>;
}

export { O365, O365Config };
