import { EventEmitter } from '../../stencil-public-runtime';
import { FormFieldValidationRule } from '../../helpers/validator/rules/form-field-validation-rule';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 1.26.0
 */
export declare class VegaInputCreditCard {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected readonly formFieldController: FormFieldControllerSlimmer<string>;
  protected changeEventEmitter: EventEmitSlimmerBase;
  protected blurEventEmitter: EventEmitSlimmerBase;
  protected focusEventEmitter: EventEmitSlimmerBase;
  protected inputCreditCardEventPrevent: ChildNodesEventPreventSlimmer;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaInputCreditCardElement>;
  private inputRef;
  host: HTMLVegaInputCreditCardElement;
  /**
   * Specifies whether a card number must be entered for
   *    this component to pass form validation.
   *
   * @vegaVersion 1.26.0
   */
  required: boolean;
  /**
   * Determines whether the credit card input field is disabled.
   *
   * @vegaVersion 1.26.0
   */
  disabled: boolean;
  /**
   * Defines the label or title for the credit card input field.
   *
   * @vegaVersion 1.26.0
   */
  label: string;
  /**
   * Provides a supplementary prompt message that assists users in
   *    understanding the expected value for the input field.
   *
   * @vegaVersion 1.26.0
   */
  hint: string;
  /**
   * Specifies the size of the credit card input field.
   *
   * @vegaVersion 1.26.0
   */
  size: 'default' | 'small';
  /**
   * Specifies a placeholder string that displays as a temporary hint or
   *    example inside the credit card input field.
   *
   * It indicates the expected format or pattern of the credit card input.
   *
   * @vegaVersion 1.26.0
   */
  placeholder: string;
  /**
   * Specifies whether to hide the credit card number when
   *    users focus out of the input field.
   *
   * When set to `true`, the credit card number is partially masked,
   *    with the first three fields displayed as "x" and
   *    the last field remaining visible during blur and upon initial loading.
   *
   * @vegaVersion 1.26.0
   */
  hideCardNumberOnBlur: boolean;
  /**
   * Determines whether the user's input in the credit card field should
   *    be automatically validated.
   *
   * @vegaVersion 1.26.0
   */
  autoValidation: boolean;
  /**
   * Specifies custom validation rules for the credit card input field.
   *
   * @vegaVersion 1.26.0
   */
  validationRules: FormFieldValidationRule<unknown>[];
  watchValidationRules(): void;
  /**
   * Indicates whether the current value in the field is considered valid
   *    based on the defined validation rules.
   *
   * @vegaVersion 1.26.0
   */
  isValid: boolean;
  /**
   * Represents a pre-set value for the credit card input field.
   *
   * It allows you to initialize the field with a specific value,
   *    which is displayed to the user when the
   *    input is initially rendered.
   *
   * @vegaVersion 1.26.0
   */
  value: string;
  watchValue(value: string): void;
  /**
   * An event emitter notifying a value change.
   *
   * @vegaVersion 1.26.0
   */
  vegaChange: EventEmitter<string>;
  /**
   * A native change event emitter notifying a value change.
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  change: EventEmitter<string>;
  /**
   * An event emitter notifying the blur event of the credit card element.
   *
   * @vegaVersion 1.26.0
   */
  vegaBlur: EventEmitter<undefined>;
  /**
   * An event emitter notifying the blur event of the credit card element.
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  blur: EventEmitter<undefined>;
  /**
   * An event emitter notifying the focus of the credit card element.
   *
   * @vegaVersion 1.26.0
   */
  vegaFocus: EventEmitter<undefined>;
  /**
   * An event emitter notifying the focus of the credit card element.
   * @eventSemantics namespace:native
   * @vegaVersion 2.0.0
   */
  focus: EventEmitter<undefined>;
  componentDidLoad(): void;
  render(): VegaInputCreditCard;
  private renderInputContainer;
  private getCreditCardType;
  private handleVegaChange;
  private handleVegaBlur;
  private handleVegaFocus;
  private inputContainerGetter;
  private touchableAreaGetter;
  private getMaskConfig;
}
