import type { UUID } from "../types/primitives";
import type { IAgentRuntime } from "../types/runtime";
import { Service } from "../types/service";
import type { Task } from "../types/task";
import type { ContactInfo } from "./rolodex.ts";
interface FollowUpSuggestion {
    entityId: UUID;
    entityName: string;
    reason: string;
    daysSinceLastContact: number;
    relationshipStrength: number;
    suggestedMessage?: string;
}
export declare class FollowUpService extends Service {
    static serviceType: "follow_up";
    capabilityDescription: string;
    private rolodexService;
    constructor(runtime?: IAgentRuntime);
    initialize(runtime: IAgentRuntime): Promise<void>;
    stop(): Promise<void>;
    static start(runtime: IAgentRuntime): Promise<Service>;
    scheduleFollowUp(entityId: UUID, scheduledAt: Date, reason: string, priority?: "high" | "medium" | "low", message?: string): Promise<Task>;
    getUpcomingFollowUps(days?: number, includeOverdue?: boolean): Promise<Array<{
        task: Task;
        contact: ContactInfo;
    }>>;
    completeFollowUp(taskId: UUID, notes?: string): Promise<void>;
    snoozeFollowUp(taskId: UUID, newDate: Date): Promise<void>;
    getFollowUpSuggestions(): Promise<FollowUpSuggestion[]>;
    private registerFollowUpWorker;
    private registerRecurringCheckInWorker;
    private generateFollowUpReason;
    private generateFollowUpMessage;
    scheduleMultipleFollowUps(followUps: Array<{
        entityId: UUID;
        scheduledAt: Date;
        reason: string;
        priority?: "high" | "medium" | "low";
        message?: string;
    }>): Promise<Task[]>;
}
export {};
//# sourceMappingURL=followUp.d.ts.map