import { EmailQuery, EmailExtractionRule } from '../types';
export interface GmailMessage {
    id?: string;
    raw?: string;
    headers?: Array<{
        name: string;
        value: string;
    }>;
    labelIds?: string[];
    snippet?: string;
    body?: string;
    subject?: string;
    from?: string;
    to?: string;
}
interface GmailConfig {
    clientId: string;
    clientSecret: string;
    refreshToken: string;
    redirectUri?: string;
}
export declare function fromGmail(config: GmailConfig): Promise<{
    findEmail: ({ subject, from, to, afterTime, beforeTime }: EmailQuery) => Promise<GmailMessage | null>;
    findEmailWithDetails: (config: GmailConfig, query: EmailQuery, extractionRules: EmailExtractionRule[]) => Promise<{
        email: GmailMessage | null;
        extractedDetails: Record<string, string | null>;
    }>;
}>;
export declare function findEmail(config: GmailConfig, { subject, from, to, afterTime, beforeTime }: EmailQuery): Promise<GmailMessage | null>;
export declare function findEmailWithDetails(config: GmailConfig, query: EmailQuery, extractionRules: EmailExtractionRule[]): Promise<{
    email: GmailMessage | null;
    extractedDetails: Record<string, string | null>;
}>;
export {};
