UNPKG

crew-management-mcp-server

Version:

Crew management server handling crew records, certifications, scheduling, payroll, and vessel assignments with ERP access for data extraction

76 lines (75 loc) 2.51 kB
/** * Initialize company database connection for IMO filtering */ export declare function initializeCompanyDatabase(): Promise<void>; /** * Close company database connection */ export declare function closeCompanyDatabase(): Promise<void>; /** * Fetch company IMO numbers from the database * @param companyName - Name of the company to fetch IMOs for * @returns Array of IMO numbers as strings */ export declare function fetchCompanyImoNumbers(companyName: string): Promise<string[]>; /** * Set company IMO numbers (for testing and development) * @param imos - Array of IMO numbers */ export declare function setCompanyImoNumbers(imos: string[]): void; /** * Get cached company IMO numbers * @returns Array of cached IMO numbers */ export declare function getCompanyImoNumbers(): string[]; /** * Check if an IMO number is valid for the current company * @param imoNumber - IMO number to validate (string or number) * @returns True if the IMO is authorized for the company */ export declare function isValidImoForCompany(imoNumber: string | number): boolean; /** * Check if IMO filtering should be bypassed for admin companies * @param companyName - Company name to check * @returns True if filtering should be bypassed */ export declare function shouldBypassImoFiltering(companyName: string): boolean; /** * Validate IMO number with detailed error messages * @param imoNumber - IMO number to validate * @param companyName - Company name for error messages * @returns Validation result with error message */ export declare function validateImoNumber(imoNumber: string | number, companyName?: string): { isValid: boolean; errorMessage?: string; }; /** * Enhanced filtering for Typesense hits to remove unauthorized IMO documents * @param hits - Array of Typesense hits to filter * @returns Filtered hits with statistics */ export declare function filterTypesenseHitsByCompanyImos(hits: any[]): { filteredHits: any[]; filteringStats: { totalHits: number; filteredHits: number; unauthorizedImos: Array<{ field: string; value: any; }>; processingTimeMs: number; }; }; export declare function filterQueryResultsByCompanyImos(columns: string[], rows: any[]): { filteredRows: any[]; filteringStats: { totalRows: number; filteredRows: number; unauthorizedImos: Array<{ field: string; value: any; }>; processingTimeMs: number; }; };