import { type ISeparators } from "@gooddata/number-formatter";
/**
 * @alpha
 */
export type CurrencyFormatValidationErrorCode = "empty" | "invalidFormat" | "missingCurrencySymbol" | "missingDecimalPlaces";
/**
 * @alpha
 */
export interface ICurrencyFormatValidationError {
    code: CurrencyFormatValidationErrorCode;
    /**
     * Indexes of sections (0-based) that failed validation.
     * The value is only present for section-driven validations.
     */
    sectionIndexes?: number[];
    message: string;
}
/**
 * @alpha
 */
export interface ICurrencyFormatValidationResult {
    isValid: boolean;
    errors: ICurrencyFormatValidationError[];
}
/**
 * @alpha
 */
export interface ICurrencyFormatValidationOptions {
    /**
     * Sample value used to verify the formatter does not throw.
     * Defaults to 12345.67 to cover both thousands and decimals.
     */
    sampleValue?: number;
    /**
     * Number of mandatory decimal places each section must contain.
     * Set to 0 (or a negative value) to skip the decimal check.
     * Defaults to 2.
     */
    requiredDecimalPlaces?: number;
    separators?: ISeparators;
}
/**
 * Validates a number format string that is expected to represent a currency amount.
 *
 * @alpha
 */
export declare function validateCurrencyFormat(format: string | undefined | null, options?: ICurrencyFormatValidationOptions): ICurrencyFormatValidationResult;
/**
 * Checks if a format string represents a currency format.
 * A currency format is one where at least one numeric section contains a currency symbol.
 *
 * @alpha
 */
export declare function isCurrencyFormat(format: string | undefined | null): boolean;
//# sourceMappingURL=currencyFormatValidator.d.ts.map