import { o as IAxiosClientConfig, I as IAxiosClient, b as AxiosReturnResponse, H as HttpError, u as IHttpErrorOptions, k as DefaultCountryBasedFormatOptionKey } from '../translate-DKlXUB6I.js';
export { A as AllLocaleType, a as AxiosRequestConfigData, B as BaseDateType, C as CURRENCY_CODES, c as CURRENCY_RECORD, d as CountryBasedFormatOptionKey, e as CurrencyCode, f as CurrencyConverter, g as CurrencyConverterOptions, h as CurrencyIntl, i as CurrencyIntlOptions, D as DEFAULT_DATE_OPTIONS, j as DateIntl, E as ErrorHandler, l as ErrorHandlerFunction, m as ErrorHandlerMany, n as ErrorHandlerObject, F as FormatOptions, p as ICurrencyConverter, q as ICurrencyIntl, r as IDateOptions, s as IDateTransformer, t as IHttpErrorData, v as INumberIntl, w as INumberIntlOptions, N as NumberIntl, R as RatesCacheOptions, T as TIME_ZONE_LISTS, x as TimeZone, y as currencyIntl, z as dateIntl, G as defaultCurrencyConverter, J as numberIntl, K as t } from '../translate-DKlXUB6I.js';
import { Locale } from 'date-fns';
import { ClassValue } from 'clsx';
import 'axios';
import 'date-fns/locale';
import 'intl-messageformat';

type IHttpClient<Config extends IAxiosClientConfig> = Omit<IAxiosClient<Config>, 'config'>;

declare class HttpClient<Config extends IAxiosClientConfig> implements IHttpClient<Config> {
    private client;
    constructor(client: IAxiosClient<IAxiosClientConfig>);
    get<TData = unknown, TConfig extends Config = Config>(url: string, config?: TConfig): AxiosReturnResponse<TData, TConfig>;
    post<TData = unknown, TBody = unknown, TConfig extends Config = Config>(url: string, body: TBody, config?: TConfig): AxiosReturnResponse<TData, TConfig>;
    put<TData = unknown, TBody = unknown, TConfig extends Config = Config>(url: string, body?: TBody, config?: TConfig): AxiosReturnResponse<TData, TConfig>;
    patch<TData = unknown, TBody = unknown, TConfig extends Config = Config>(url: string, body?: TBody, config?: TConfig): AxiosReturnResponse<TData, TConfig>;
    delete<TData = unknown, TConfig extends Config = Config>(url: string, config?: TConfig): AxiosReturnResponse<TData, TConfig>;
    private configure;
}

declare class InternalServerException extends HttpError {
    constructor(options: IHttpErrorOptions);
}

declare class ResourceNotFoundException extends HttpError {
    constructor(options: IHttpErrorOptions, resourceId?: string);
}

declare const axiosDefaultConfig: IAxiosClientConfig;
declare const httpClient: HttpClient<IAxiosClientConfig>;

declare const DEFAULT_LOCAL_VALUE = "LOCAL";
declare const DEFAULT_COUNTRY_BASED_FORMAT_OPTIONS: Record<DefaultCountryBasedFormatOptionKey, CountryBasedFormat>;

/**
 * Returns the default date format as a string.
 * The format is based on the current locale and follows the pattern "dd/MM/yyyy".
 * @returns The default date format.
 */
declare const getDefaultDateFormat: () => string;
/**
 * Retrieves the locale object based on the provided locale string.
 * If the locale is not found, it falls back to en-US.
 *
 * @param locale - The locale string.
 * @returns A promise that resolves to the locale object or undefined.
 */
declare const getLocale: (locale?: CountryBasedFormat['locale']) => Promise<Locale | undefined>;
/**
 * Retrieves the local country-based format for date, time, and currency.
 * @returns The required country-based format object.
 */
declare const getLocalCountryBasedFormat: () => Required<CountryBasedFormat>;

type LogLevel = 'ERROR' | 'WARN' | 'INFO' | 'DEBUG';
interface LogParams {
    route?: string;
    stacktrace?: string;
    user?: object;
    tags?: string[];
    request?: string;
    response?: string;
    additionalInfo?: string;
    [index: string]: unknown;
}
interface ILogger {
    log(level: LogLevel, message: string, params?: LogParams): void;
    debug(message: string, params?: LogParams): void;
    info(message: string, params?: LogParams): void;
    warn(message: string, params?: LogParams): void;
    error(message: string, params?: LogParams): void;
}

declare class Logger {
    private _client;
    constructor();
    log(...args: Parameters<ILogger['log']>): void;
    debug(...args: Parameters<ILogger['debug']>): void;
    info(...args: Parameters<ILogger['info']>): void;
    warn(...args: Parameters<ILogger['warn']>): void;
    error(...args: Parameters<ILogger['error']>): void;
    private getClient;
    private init;
}
declare const logger: Logger;

/**
 * Returns a string of concatenated class names.
 * @param inputs - An array of class names or class name objects.
 * @returns A string of concatenated class names.
 */
declare const cn: (...inputs: ClassValue[]) => string;

export { AxiosReturnResponse, DEFAULT_COUNTRY_BASED_FORMAT_OPTIONS, DEFAULT_LOCAL_VALUE, DefaultCountryBasedFormatOptionKey, HttpError, IHttpErrorOptions, InternalServerException, ResourceNotFoundException, axiosDefaultConfig, cn, getDefaultDateFormat, getLocalCountryBasedFormat, getLocale, httpClient, logger };
