import { Lifelog, LifelogContentNode } from "./limitless-client.js";
export interface TimeRange {
    start: string;
    end: string;
    timezone?: string;
}
export interface NaturalTimeOptions {
    timezone?: string;
    referenceTime?: Date;
}
export interface MeetingParticipant {
    name: string;
    identifier?: "user" | null;
    speakingDuration: number;
    messageCount: number;
}
export interface Meeting {
    id: string;
    title: string;
    startTime: string;
    endTime: string;
    duration: number;
    participants: MeetingParticipant[];
    mainTopics: string[];
    actionItems: ActionItem[];
    keyDecisions: string[];
    summary: string;
    lifelogIds: string[];
}
export interface ActionItem {
    content: string;
    assignee?: string;
    context: string;
    timestamp: string;
    priority: "high" | "medium" | "low";
    source: {
        lifelogId: string;
        nodeIndex: number;
    };
}
export interface ConversationSegment {
    participant: string;
    content: string;
    startTime: string;
    endTime: string;
    duration: number;
}
export interface TopicSearchResult {
    lifelog: Lifelog;
    relevantNodes: LifelogContentNode[];
    contextBefore: LifelogContentNode[];
    contextAfter: LifelogContentNode[];
    relevanceScore: number;
    summary: string;
}
export interface DailySummary {
    date: string;
    timezone: string;
    meetings: Meeting[];
    totalRecordingTime: number;
    totalSpeakingTime: number;
    topParticipants: MeetingParticipant[];
    keyTopics: string[];
    actionItems: ActionItem[];
    insights: {
        mostProductiveHours: string[];
        longestMeeting: Meeting | null;
        mostFrequentParticipant: string | null;
        topicsDiscussed: number;
    };
}
export interface SpeakerAnalytics {
    participant: string;
    totalSpeakingTime: number;
    conversationCount: number;
    averageConversationLength: number;
    topTopics: string[];
    timeDistribution: {
        hour: number;
        duration: number;
    }[];
    recentInteractions: {
        date: string;
        duration: number;
        topics: string[];
    }[];
}
/**
 * Parses natural language time expressions into precise date ranges
 * Supports timezone-aware parsing with comprehensive error handling
 */
export declare class NaturalTimeParser {
    private timezone;
    private referenceTime;
    constructor(options?: NaturalTimeOptions);
    private getDefaultTimezone;
    /**
     * Parse natural time expressions into TimeRange objects
     */
    parseTimeExpression(expression: string): TimeRange;
    private getDayRange;
    private getTimeOfDayRange;
    private getWeekRange;
    private getRelativeDayRange;
    private parseDayReference;
    private getWeekendRange;
    private getMonthRange;
    private getYearRange;
    private getQuarterRange;
    private getSpecificQuarterRange;
    private parseFlexibleRelativeExpression;
    private parseFutureExpression;
    private parseRelativeExpression;
    private formatDateTime;
}
/**
 * Intelligent meeting detection based on speaker patterns and conversation flow
 */
export declare class MeetingDetector {
    /**
     * Detect meetings from lifelogs using sophisticated analysis
     */
    static detectMeetings(lifelogs: Lifelog[]): Meeting[];
    private static groupByTimeProximity;
    private static analyzePotentialMeeting;
    private static extractParticipants;
    private static extractTopics;
    private static extractDecisions;
    private static generateMeetingTitle;
    private static generateMeetingSummary;
    private static extractTechnicalDetails;
    private static extractNumbersAndFigures;
}
export declare class ActionItemExtractor {
    private static readonly ACTION_PATTERNS;
    static extractFromNodes(nodes: LifelogContentNode[], lifelogId: string): ActionItem[];
    private static getContext;
    private static inferPriority;
    private static deduplicateActionItems;
}
//# sourceMappingURL=advanced-features.d.ts.map