export interface ToolArguments {
    [key: string]: any;
}
export interface PMSReport {
    id: string;
    vesselId: string;
    vesselName: string;
    imo?: number;
    reportType: 'maintenance' | 'compliance' | 'performance' | 'analysis';
    reportDate: Date;
    createdBy: string;
    status: 'draft' | 'completed' | 'approved' | 'archived';
    title: string;
    description?: string;
    data: any;
    metadata?: {
        version: string;
        lastModified: Date;
        approvedBy?: string;
        approvalDate?: Date;
    };
}
export interface Equipment {
    id: string;
    name: string;
    type: string;
    manufacturer?: string;
    model?: string;
    serialNumber?: string;
    location: string;
    installationDate?: Date;
    lastMaintenanceDate?: Date;
    nextMaintenanceDate?: Date;
    status: 'operational' | 'maintenance' | 'offline' | 'decommissioned';
}
export interface MaintenanceTask {
    id: string;
    equipmentId: string;
    taskType: 'routine' | 'preventive' | 'corrective' | 'emergency';
    title: string;
    description: string;
    frequency: string;
    estimatedDuration: number;
    priority: 'low' | 'medium' | 'high' | 'critical';
    status: 'scheduled' | 'in_progress' | 'completed' | 'overdue' | 'cancelled';
    scheduledDate?: Date;
    completedDate?: Date;
    assignedTo?: string;
    parts?: PartRequirement[];
    notes?: string;
}
export interface PartRequirement {
    partNumber: string;
    description: string;
    quantity: number;
    unit: string;
    cost?: number;
}
export interface AnalysisRequest {
    query: string;
    filters?: {
        vesselId?: string;
        vesselName?: string;
        imo?: number;
        reportType?: string;
        dateRange?: {
            start: string;
            end: string;
        };
        equipment?: string;
        status?: string;
        priority?: string;
    };
    limit?: number;
    page?: number;
}
export interface ComplianceStatus {
    requirementId: string;
    description: string;
    status: 'compliant' | 'non_compliant' | 'pending' | 'not_applicable';
    lastChecked: Date;
    nextDue?: Date;
    responsible: string;
    notes?: string;
}
export interface PerformanceMetrics {
    metricType: string;
    value: number;
    unit: string;
    timestamp: Date;
    equipmentId?: string;
    benchmarkValue?: number;
    trend: 'improving' | 'stable' | 'declining';
}
export interface SearchResult<T> {
    data: T[];
    total: number;
    page: number;
    limit: number;
    hasMore: boolean;
}
export interface FilterOptions {
    vesselIds?: string[];
    equipmentTypes?: string[];
    statusFilters?: string[];
    dateRange?: {
        field: string;
        start: string;
        end: string;
    };
    priorities?: string[];
    assignees?: string[];
}
export interface APIResponse<T = any> {
    success: boolean;
    data?: T;
    error?: string;
    message?: string;
    timestamp: string;
}
export interface Vessel {
    id: string;
    name: string;
    imo?: number;
    type: string;
    flag: string;
    operator: string;
    yearBuilt?: number;
    classification?: string;
    status: 'active' | 'inactive' | 'in_yard' | 'decommissioned';
}
export interface ReportConfiguration {
    templateId: string;
    title: string;
    includeSections: string[];
    dateRange?: {
        start: string;
        end: string;
    };
    filters?: FilterOptions;
    format: 'pdf' | 'html' | 'excel' | 'json';
    recipients?: string[];
}
export interface ToolResponseItem {
    type: "error" | "text" | "table" | "chart" | "success";
    content?: any;
    text?: string;
    data?: any;
    title?: string;
    format?: string;
    metadata?: {
        source?: string;
        collection?: string;
        query?: string;
        totalFound?: number;
        score?: number;
        title?: string;
        artifact?: string;
        executionTime?: number;
        recordsReturned?: number;
        queryText?: string;
        error?: string;
        imo?: string;
        [key: string]: any;
    };
}
export type ToolResponse = ToolResponseItem[];
export interface TypesenseHit {
    document: any;
    text_match?: number;
}
export declare const COLLECTIONS: {
    readonly DATA_LINKS: "data_links";
};
