import { FormFieldStatusMeta } from './form-field-validation-rule';
import { EvaluateResultTranslation } from './validation-rule';
import { InternalFormFieldValidationRule } from './internal-form-field-validation-rule.abstract';
/**
 * A rule that checks if the length of input is less than or equal to a maximum value
 *
 * @augments {InternalFormFieldValidationRule<string>}
 * @property {{ maxStrLength: number }} config config including the maxStrLength limit for validation
 */
export declare class MaxStringLengthRule extends InternalFormFieldValidationRule<string> {
  private readonly config;
  /**
   * It creates a new instance of the class with the given config.
   *
   * @param {{ maxStrLength: number }} config config including the maxStrLength limit for validation
   * @param {number} config.maxStrLength number of the maxStrLength
   */
  constructor(config: {
    maxStrLength: number;
  });
  /**
   * It checks if the input is a string and if it's shorter than the maximum string length
   *
   * @param {string} input - string
   * @returns {EvaluateResultTranslation} An object with two properties: isValid and message.
   * @throws {Error} if input is unable to evaluate
   */
  evaluate(input: string): EvaluateResultTranslation;
  /**
   * It returns true if the input is of an accepted type and the field is not disabled and visible
   *
   * @param {unknown} input - The input to be evaluated.
   * @param {FormFieldStatusMeta} [status] - FormFieldStatusMeta
   * @returns {boolean} A boolean value.
   */
  canEvaluate(input: unknown, status?: FormFieldStatusMeta): boolean;
  /**
   * If the field is not disabled, visible, and has been touched or modified, then show the error
   *
   * @param {FormFieldStatusMeta} status - FormFieldStatusMeta
   * @returns {boolean} A boolean value.
   */
  shouldShowError(status: FormFieldStatusMeta): boolean;
  /**
   * This function returns true if the input is a string, and false otherwise.
   *
   * @param {unknown} input - The input to be validated.
   * @returns {boolean} A boolean value.
   */
  private isAcceptedInputType;
}
