import type { PropertyDefs } from "./Serializable.js";
import { Settings, type SettingsEvents } from "./Settings.js";
/**
 * Properties that can be passed into the constructor for {@link FormatSettings}.
 */
export interface FormatSettingsProperties {
    /**
     * The default format for date values. Either a
     * {@link utilities/format/formats!DateFormat} constant, or a custom date
     * format string.
     */
    dateFormat?: string;
    /**
     * The default format for time values. Either a
     * {@link utilities/format/formats!DateFormat} constant, or a custom time
     * format string.
     */
    timeFormat?: string;
    /**
     * The default format for number values. Either a
     * {@link utilities/format/formats!NumberFormat} constant, or a custom number
     * format string.
     */
    numberFormat?: string;
    /**
     * The locale to use when formatting values.
     */
    locale?: string;
    /**
     * The 3-letter ISO 4217 currency code (e.g "USD", "CAD"). Required when
     * formatting a number using NumberFormat.CURRENCY or
     * NumberFormat.ACCOUNTING.
     */
    currency?: string;
    /**
     * The number of digits to show after the decimal point. If unspecified, an
     * appropriate value is determined based on the locale and currency.
     */
    fractionalDigits?: number;
    /**
     * The time zone to display date/time data in. The default will be the
     * user's local time zone.
     */
    timeZone?: string;
    /**
     * Whether to use formatting from the field info if it is specified.
     */
    useFieldInfo?: boolean;
}
/**
 * Settings that affect how values are formatted.
 */
export declare class FormatSettings extends Settings<FormatSettingsProperties> {
    /**
     * @deprecated Do not directly reference this property. Use EventNames and
     *   EventTypes helpers from @arcgis/core/Evented.
     */
    "@eventTypes": SettingsEvents<FormatSettings>;
    /**
     * The default format for date values. Either a
     * {@link utilities/format/formats!DateFormat} constant, a custom date format
     * string.
     */
    get dateFormat(): string;
    set dateFormat(value: string);
    /**
     * The default format for time values. Either a
     * {@link utilities/format/formats!TimeFormat} constant, a custom time format
     * string.
     */
    get timeFormat(): string;
    set timeFormat(value: string);
    /**
     * The default format for number values. Either a
     * {@link utilities/format/formats!NumberFormat} constant, a custom number
     * format string.
     */
    get numberFormat(): string;
    set numberFormat(value: string);
    /**
     * The locale to use when formatting values.
     */
    get locale(): string;
    set locale(value: string);
    /**
     * The 3-letter ISO 4217 currency code (e.g "USD", "CAD"). Required when
     * formatting a number using NumberFormat.CURRENCY or
     * NumberFormat.ACCOUNTING.
     */
    get currency(): string;
    set currency(value: string);
    /**
     * The number of digits to show after the decimal point. If unspecified, an
     * appropriate value is determined based on the locale and currency.
     */
    get fractionalDigits(): number;
    set fractionalDigits(value: number);
    /**
     * The time zone to display date/time data in. The default will be the
     * user's local time zone.
     */
    get timeZone(): string;
    set timeZone(value: string);
    /**
     * Whether to use formatting from the field info if it is specified.
     */
    get useFieldInfo(): boolean;
    set useFieldInfo(value: boolean);
    protected _hasSettingIncludingAncestor<K extends keyof this>(setting: K): boolean;
    protected _getSerializableProperties(): PropertyDefs<FormatSettingsProperties>;
}
