/**
 * Content-parser helpers for extracting structured data out of email bodies.
 *
 * Two independent parsers live here because both target free-text content that
 * arrives via the same email-fetch path, and both are intentionally
 * dependency-free: regex-based action-item extraction and a minimal RFC 5545
 * iCalendar parser that understands the subset of VEVENT properties we care
 * about for calendar invites.
 *
 * Both parsers are defensive by design — they never throw on malformed input,
 * they cap output size, and they treat all input as untrusted text.
 */
export interface ActionItem {
    text: string;
    assignee?: string;
    due?: string;
}
export interface Meeting {
    summary: string;
    start: string;
    /** IANA/Olson zone from a `DTSTART;TZID=...` parameter, when present. The
     *  `start` value itself stays the raw RFC 5545 date-time string. */
    startTzid?: string;
    end?: string;
    location?: string;
    organizer?: string;
    attendees?: string[];
    description?: string;
    rrule?: string;
}
/**
 * Extract action-item-looking lines from a plain-text email body.
 *
 * Heuristic: a line is an action item if it either
 *   (a) starts with a bullet marker AND contains an action verb, or
 *   (b) contains an explicit marker (TODO:, ACTION:, @mention).
 *
 * Output is trimmed, deduplicated by lowercase text, and capped at 50 items.
 */
export declare function extractActionItems(body: string): ActionItem[];
/**
 * Parse a text blob (an .ics file, a text/calendar attachment body, or an
 * inline iCalendar chunk inside an email body) and return the first VEVENT
 * found, or null if the block is missing/malformed/empty.
 *
 * Only the subset of properties relevant to rendering a meeting to an end
 * user is extracted — unknown properties are ignored, and the parser never
 * throws on bad input.
 */
export declare function parseIcs(text: string): Meeting | null;
//# sourceMappingURL=content-parser.d.ts.map