export interface ValidationResult {
    isValid: boolean;
    errorMessage?: string;
}
/**
 * Fetch company IMO numbers from the common_group_details collection
 * @param companyName - Name of the company to fetch IMO numbers for
 * @param companyDbUri - MongoDB connection URI for company database
 * @param companyDbName - MongoDB database name for company data
 * @returns Array of IMO numbers as strings
 */
export declare function fetchCompanyImoNumbers(companyName: string, companyDbUri: string, companyDbName: string): Promise<string[]>;
/**
 * Set the cached company IMO numbers
 * @param imoNumbers - Array of IMO numbers to cache
 */
export declare function setCompanyImoNumbers(imoNumbers: string[]): void;
/**
 * Get the cached company IMO numbers
 * @returns Array of cached IMO numbers
 */
export declare function getCompanyImoNumbers(): string[];
/**
 * Check if a specific IMO number is valid for the company
 * @param imoNumber - IMO number to validate (string or number)
 * @returns Boolean indicating if IMO is authorized
 */
export declare function isValidImoForCompany(imoNumber: string | number): boolean;
/**
 * Validate IMO number and provide detailed error message
 * @param imoNumber - IMO number to validate
 * @param companyName - Company name for error message
 * @returns Validation result with error message if invalid
 */
export declare function validateImoNumber(imoNumber: string | number, companyName: string): ValidationResult;
/**
 * Check if IMO filtering should be bypassed for admin companies
 * @param companyName - Company name to check
 * @returns Boolean indicating if filtering should be bypassed
 */
export declare function shouldBypassImoFiltering(companyName: string): boolean;
/**
 * Initialize company IMO numbers from configuration
 * Should be called during server startup
 */
export declare function initializeCompanyImoNumbers(): Promise<void>;
/**
 * Get current IMO filtering status for monitoring
 * @returns Object with filtering status information
 */
export declare function getImoFilteringStatus(): {
    companyName: string;
    isAdminCompany: boolean;
    imoCount: number;
    filteringEnabled: boolean;
};
