/**
 * Utilities for handling standardized parameters
 */
import { StandardListParams, StandardGetParams, DetailLevel, DetailFieldMappings, EnterpriseErrorInfo, OutputFormat, ResponseOptimizationParams, CustomFieldInclusion } from '../types/parameter-types.js';
/**
 * Apply default values and validate list parameters
 */
export declare function normalizeListParams(params?: StandardListParams): StandardListParams & {
    limit: number;
    startWith: number;
    detail: DetailLevel;
    includeSubData: boolean;
    fields: string[];
    exclude: string[];
    validateFields: boolean;
    outputFormat: OutputFormat;
    truncateFields: string[];
    truncateIndicator: string;
    includeDescription: boolean;
    includeCustomFields: CustomFieldInclusion;
    includeCustomFieldsStrategy: CustomFieldInclusion;
    includeLinks: boolean;
    includeEmpty: boolean;
    includeMetadata: boolean;
};
/**
 * Apply default values and validate get parameters
 */
export declare function normalizeGetParams(params?: StandardGetParams): StandardGetParams & {
    detail: DetailLevel;
    includeSubData: boolean;
    fields: string[];
    exclude: string[];
    validateFields: boolean;
    outputFormat: OutputFormat;
    truncateFields: string[];
    truncateIndicator: string;
    includeDescription: boolean;
    includeCustomFields: CustomFieldInclusion;
    includeCustomFieldsStrategy: CustomFieldInclusion;
    includeLinks: boolean;
    includeEmpty: boolean;
    includeMetadata: boolean;
};
/**
 * Filter response data based on detail level
 */
export declare function filterByDetailLevel<T extends Record<string, any>>(data: T, entityType: keyof typeof DetailFieldMappings, detailLevel: DetailLevel, fields?: string[], exclude?: string[], outputFormat?: OutputFormat, optimization?: ResponseOptimizationParams): Partial<T> | string;
/**
 * Filter object by specific fields, supporting dot notation for nested fields
 */
/**
 * @deprecated Use fieldSelector.selectFields() from field-selection.ts instead
 * Legacy field filtering function - kept for backward compatibility
 */
export declare function filterByFields<T extends Record<string, any>>(data: T, fields: string[]): Partial<T>;
/**
 * Filter object by excluding specific fields
 */
/**
 * @deprecated Use fieldSelector.selectFields() with exclude option from field-selection.ts instead
 * Legacy field exclusion function - kept for backward compatibility
 */
export declare function filterByExclusion<T extends Record<string, any>>(data: T, excludeFields: string[]): Partial<T>;
/**
 * Validate field names against entity schema and return suggestions
 */
export declare function validateFieldNames(entityType: keyof typeof DetailFieldMappings, requestedFields: string[]): {
    valid: string[];
    invalid: string[];
    suggestions: Array<{
        field: string;
        suggestion: string;
    }>;
};
/**
 * Filter array of items by detail level
 */
export declare function filterArrayByDetailLevel<T extends Record<string, any>>(data: T[], entityType: keyof typeof DetailFieldMappings, detailLevel: DetailLevel, fields?: string[], exclude?: string[], outputFormat?: OutputFormat, optimization?: ResponseOptimizationParams): (Partial<T> | string)[];
/**
 * Check if error is due to enterprise feature limitation
 */
export declare function isEnterpriseError(error: any): EnterpriseErrorInfo;
/**
 * Convert old pagination params to new format
 */
export declare function convertPaginationParams(params: any): {
    limit?: number;
    startWith?: number;
};
/**
 * Format response data according to the specified output format
 */
export declare function formatResponse<T>(data: T, format: OutputFormat | undefined, entityType: string): string | T;
/**
 * Response Optimization Functions
 */
/**
 * Optimize response data using truncation and conditional inclusion
 */
export declare function optimizeResponse<T>(data: T, optimization?: ResponseOptimizationParams): T;
/**
 * Truncate a single field with word preservation
 */
export declare function truncateField(value: string, maxLength: number, indicator?: string, preserveWords?: boolean): string;
/**
 * Normalize optimization parameters with defaults and validation
 */
export declare function normalizeOptimizationParams(params?: ResponseOptimizationParams): ResponseOptimizationParams;
