systemprompt-mcp-interview
Version:
A specialized Model Context Protocol (MCP) server that enables AI-powered interview roleplay scenarios
46 lines (45 loc) • 1.98 kB
TypeScript
import { GoogleBaseService } from "./google-base-service.js";
import { gmail_v1 } from "googleapis/build/src/apis/gmail/v1.js";
import { EmailMetadata, SendEmailOptions, DraftEmailOptions } from "../types/gmail-types.js";
export declare class GmailService extends GoogleBaseService {
private gmail;
private labelCache;
private gmailInitPromise;
constructor();
private initializeGmailClient;
private ensureInitialized;
private loadLabels;
private parseEmailAddress;
private getMessageMetadata;
private extractEmailMetadata;
listMessages(maxResults?: number): Promise<EmailMetadata[]>;
getMessage(messageId: string): Promise<EmailMetadata & {
body: string;
}>;
searchMessages(query: string, maxResults?: number): Promise<EmailMetadata[]>;
getLabels(): Promise<gmail_v1.Schema$Label[]>;
private createEmailRaw;
sendEmail(options: SendEmailOptions): Promise<string>;
createDraft(options: DraftEmailOptions): Promise<string>;
updateDraft(options: DraftEmailOptions): Promise<string>;
listDrafts(maxResults?: number): Promise<EmailMetadata[]>;
deleteDraft(draftId: string): Promise<void>;
getDraft(draftId: string): Promise<EmailMetadata & {
body: string;
}>;
modifyMessage(messageId: string, options: {
addLabelIds?: string[];
removeLabelIds?: string[];
}): Promise<EmailMetadata>;
trashMessage(messageId: string): Promise<void>;
untrashMessage(messageId: string): Promise<void>;
deleteMessage(messageId: string): Promise<void>;
createLabel(name: string, options?: {
textColor?: string;
backgroundColor?: string;
messageListVisibility?: "hide" | "show";
labelListVisibility?: "labelHide" | "labelShow" | "labelShowIfUnread";
}): Promise<gmail_v1.Schema$Label>;
deleteLabel(labelId: string): Promise<void>;
replyEmail(messageId: string, body: string, isHtml?: boolean): Promise<string>;
}