gmail-reader
Version:
A Gmail reader package for Google Workspace accounts with domain-wide delegation support
48 lines (47 loc) • 2.31 kB
TypeScript
import { GmailClient } from './gmailClient';
import { Email, EmailAttachment, EmailQueryOptions, EmailReadOptions, EmailListResponse, GmailClientConfig } from './types';
/**
* Create a Gmail client for reading emails
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token (optional for domain-wide delegation)
* @param options - Additional options for domain-wide delegation
* @returns A configured GmailClient instance
*/
export declare function createGmailClient(config: GmailClientConfig, refreshToken?: string, options?: {
impersonateEmail?: string;
keyFile?: string;
scopes?: string[];
}): GmailClient;
/**
* Read emails from a specific sender
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token
* @param fromEmail - Email address to filter by sender
* @param options - Additional options
* @returns Promise resolving to a list of emails
*/
export declare function readEmails(config: GmailClientConfig, refreshToken: string, fromEmail: string, options?: Omit<EmailQueryOptions, 'q'>): Promise<EmailListResponse>;
/**
* Read a specific email by ID
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token
* @param emailId - ID of the email to retrieve
* @param options - Options for retrieving the email
* @returns Promise resolving to the email details
*/
export declare function readEmail(config: GmailClientConfig, refreshToken: string, emailId: string, options?: EmailReadOptions): Promise<Email>;
/**
* Create a Gmail client with domain-wide delegation
*
* @param config - Client configuration including clientId (service account email)
* @param keyFile - Service account key file content
* @param impersonateEmail - Email address to impersonate
* @param scopes - Optional scopes to request
* @returns A configured GmailClient instance with domain-wide delegation
*/
export declare function createDelegatedGmailClient(config: GmailClientConfig, keyFile: string, impersonateEmail: string, scopes?: string[]): GmailClient;
export { GmailClient };
export type { Email, EmailAttachment, EmailQueryOptions, EmailReadOptions, EmailListResponse, GmailClientConfig };