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
TypeScript
/**
* 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;
};
};