/**
 * @license
 * Copyright (c) 2025 Handsoncode. All rights reserved.
 */
import { TranslatableErrorType } from './Cell';
import { DateTime, SimpleDate, SimpleDateTime, SimpleTime } from './DateTimeHelper';
import { ChooseAddressMapping } from './DependencyGraph/AddressMapping/ChooseAddressMappingPolicy';
import { LicenseKeyValidityState } from './helpers/licenseKeyValidator';
import { TranslationPackage } from './i18n';
import { FunctionPluginDefinition } from './interpreter';
import { Maybe } from './Maybe';
import { ParserConfig } from './parser/ParserConfig';
import { ConfigParams } from './ConfigParams';
export declare class Config implements ConfigParams, ParserConfig {
    static defaultConfig: ConfigParams;
    /** @inheritDoc */
    readonly useArrayArithmetic: boolean;
    /** @inheritDoc */
    readonly caseSensitive: boolean;
    /** @inheritDoc */
    readonly chooseAddressMappingPolicy: ChooseAddressMapping;
    /** @inheritDoc */
    readonly accentSensitive: boolean;
    /** @inheritDoc */
    readonly caseFirst: 'upper' | 'lower' | 'false';
    /** @inheritDoc */
    readonly dateFormats: string[];
    /** @inheritDoc */
    readonly timeFormats: string[];
    /** @inheritDoc */
    readonly functionArgSeparator: string;
    /** @inheritDoc */
    readonly arrayColumnSeparator: ',' | ';';
    /** @inheritDoc */
    readonly arrayRowSeparator: ';' | '|';
    /** @inheritDoc */
    readonly decimalSeparator: '.' | ',';
    /** @inheritDoc */
    readonly thousandSeparator: '' | ',' | ' ' | '.';
    /** @inheritDoc */
    readonly language: string;
    /** @inheritDoc */
    readonly ignoreWhiteSpace: 'standard' | 'any';
    /** @inheritDoc */
    readonly licenseKey: string;
    /** @inheritDoc */
    readonly functionPlugins: FunctionPluginDefinition[];
    /** @inheritDoc */
    readonly leapYear1900: boolean;
    /** @inheritDoc */
    readonly ignorePunctuation: boolean;
    /** @inheritDoc */
    readonly localeLang: string;
    /** @inheritDoc */
    readonly evaluateNullToZero: boolean;
    /** @inheritDoc */
    readonly nullYear: number;
    /** @inheritDoc */
    readonly parseDateTime: (dateTimeString: string, dateFormat?: string, timeFormat?: string) => Maybe<DateTime>;
    /** @inheritDoc */
    readonly stringifyDateTime: (date: SimpleDateTime, formatArg: string) => Maybe<string>;
    /** @inheritDoc */
    readonly stringifyDuration: (time: SimpleTime, formatArg: string) => Maybe<string>;
    /** @inheritDoc */
    readonly precisionEpsilon: number;
    /** @inheritDoc */
    readonly precisionRounding: number;
    /** @inheritDoc */
    readonly smartRounding: boolean;
    /** @inheritDoc */
    readonly useColumnIndex: boolean;
    /** @inheritDoc */
    readonly useStats: boolean;
    /** @inheritDoc */
    readonly nullDate: SimpleDate;
    /** @inheritDoc */
    readonly currencySymbol: string[];
    /** @inheritDoc */
    readonly undoLimit: number;
    /** @inheritDoc */
    readonly context: unknown;
    /**
     * Built automatically based on translation package.
     *
     * @internal
     */
    readonly errorMapping: Record<string, TranslatableErrorType>;
    /** @inheritDoc */
    readonly maxRows: number;
    /** @inheritDoc */
    readonly maxColumns: number;
    /**
     * Built automatically based on language.
     *
     * @internal
     */
    readonly translationPackage: TranslationPackage;
    /** @inheritDoc */
    readonly useRegularExpressions: boolean;
    /** @inheritDoc */
    readonly useWildcards: boolean;
    /** @inheritDoc */
    readonly matchWholeCell: boolean;
    constructor(options?: Partial<ConfigParams>, showDeprecatedWarns?: boolean);
    private setupCurrencySymbol;
    /**
     * Proxied property to its private counterpart. This makes the property
     * as accessible as the other Config options but without ability to change the value.
     *
     * @internal
     */
    get licenseKeyValidityState(): LicenseKeyValidityState;
    getConfig(): ConfigParams;
    mergeConfig(init: Partial<ConfigParams>): Config;
    private static warnDeprecatedOptions;
    private static warnDeprecatedIfUsed;
}
export declare function getDefaultConfig(): ConfigParams;
