import { StaticProvider } from '@angular/core';
import { FormControl } from '@angular/forms';
import { ValidationAlerts } from '../validation-alert/validation-alert';
import { FormValidatorBase } from './base-validator';
import * as i0 from "@angular/core";
/**
 * Provider for the FormFieldValidatorDirective directive
 */
export declare const MACHINE_NAME_VALIDATOR: StaticProvider;
/**
 * A Directive that marks a field as invalid if it does not conform to machine naming standards
 */
export declare class MachineNameValidatorDirective extends FormValidatorBase {
    /**
     * Regex to detect invalid characters. Does not allow:
     *  - backslash (\)
     *  - slash mark (/)
     *  - asterisk (*)
     *  - question mark (?)
     *  - single quotation mark (')
     *  - double quotation mark (")
     *  - less than sign (<)
     *  - greater than sign (>)
     *  - vertical bar (|)
     */
    private invalidCharacters;
    /**
     * Regex to detect invalid characters. Does not allow:
     *  - everything from @see invalidCharacters
     *  - space ( )
     */
    private invalidCharactersWithSpace;
    /**
     * Indicates that the value should be trimmed before validation. Only use when trimming the value before using it.
     */
    get smeMachineNameTrim(): boolean;
    set smeMachineNameTrim(value: boolean);
    /**
     * Internal placeholder for smeMachineNameTrim
     */
    private internalSmeMachineNameTrim;
    /**
     * Instantiates a new instance of MachineNameValidatorDirective
     */
    constructor();
    /**
     * Implementation of Validator interface.
     * Validates the value of the field attached to this control to be a valid machine name
     * @param c The FormControl attached to this element
     * @return null when valid, otherwise returns a validation object
     */
    validate(c: FormControl): ValidationAlerts | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<MachineNameValidatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MachineNameValidatorDirective, "sme-form-field[smeMachineName][formControlName],sme-form-field[smeMachineName][formControl],sme-form-field[smeMachineName][ngModel]", never, { "smeMachineNameTrim": "smeMachineNameTrim"; }, {}, never, never, false, never>;
}
