export interface LibraryConfig {
    routes?: {
        generatePathWithId?: (path: string, id: string | number) => string;
        basePaths?: {
            [module: string]: string;
        };
    };
    dataTransforms?: {
        transformApiResponse?: (response: any, context?: string) => any;
        formatCurrency?: (amount: number, currency?: string) => string;
        formatDate?: (date: any, format?: string) => string;
    };
    validation?: {
        validateField?: (value: any, rules: any) => boolean | string;
        validatePhone?: (phone: string, country?: string) => boolean;
        validateEmail?: (email: string) => boolean;
    };
    permissions?: {
        hasPermission?: (permission: string, context?: any) => boolean;
        getUserPermissions?: () => string[];
    };
    localization?: {
        getCurrentLanguage?: () => string;
        translate?: (key: string, params?: any) => string;
        getAvailableLanguages?: () => Array<{
            code: string;
            name: string;
        }>;
    };
    fileHandling?: {
        uploadFile?: (file: File, options?: any) => Promise<any>;
        downloadFile?: (fileId: string, options?: any) => Promise<any>;
        getFileUrl?: (fileId: string) => string;
    };
    notifications?: {
        showSuccess?: (message: string, options?: any) => void;
        showError?: (message: string, options?: any) => void;
        showInfo?: (message: string, options?: any) => void;
    };
}
export declare const configureLibrary: (config: LibraryConfig) => void;
export declare const getLibraryConfig: () => LibraryConfig;
export declare const getConfigFunction: <T extends keyof LibraryConfig>(category: T, functionName: keyof LibraryConfig[T]) => any;
