export interface ITransformOptions {
    /**
     * Whether to validate finite number or not.
     *
     * If configured true, number typed values would be validated by Number.isNaN().
     *
     * However, whatever you configure, it would be ignored when marshaling or parsing.
     *
     *   - when marshaling, always be true
     *     - assertStringify()
     *     - validateEncode()
     *   - when parsing, always be false
     *     - assertParse()
     *     - isDecode()
     *
     * @default false
     */
    finite?: undefined | boolean;
    /**
     * Whether to validate finite number or not.
     *
     * If configured true, number typed values would be validated by Number.isFinite().
     *
     * However, whatever you configure, it can be ignored in below case.
     *
     *   - when `finite` option is true, this option would be ignored
     *   - when marshaling, always be true
     *     - assertStringify()
     *     - validateEncode()
     *   - when parsing, always be false
     *     - assertParse()
     *     - isDecode()
     *
     * @default false
     */
    numeric?: undefined | boolean;
    /**
     * Whether to validate functional type or not.
     *
     * However, whatever you configure, it becomes false when marshaling or parsing.
     *
     * @default false
     */
    functional?: undefined | boolean;
    /**
     * Whether to check undefined value or not.
     *
     * JavaScript can assign `undefined` value to a specific property and it is an
     * issue when validating without allowing superfluous properties. Should undefined
     * value assigned superfluous property be allowed or not?
     *
     * Note that, this option only works on {@link equals} function. Other function
     * like {@link assertEquals} or {@link validateEquals} would ignore this option
     * value and always allow the `undefined` value.
     *
     * @default true
     */
    undefined?: undefined | boolean;
}
