import { MaskConfigType } from '../../../components/vega-input/types';
import { CardConfigType } from '../../../constants/card-config';
import { Nullable } from '../../../types/general';
import { InputStatus } from './string-format-strategy.abstract';
import { StringMaskStrategy } from './string-mask-strategy';
/**
 * Credit card mask strategy abstract class
 */
export declare abstract class CreditCardMaskStrategy extends StringMaskStrategy {
  /**
   * Get the position of caret
   *
   * @param {string} input - The input string
   * @param {number} caretPosition - The current position of caret
   * @returns {Nullable<number>} The new position of caret
   */
  calculateCaretPosition(input: string, caretPosition: Nullable<number>): Nullable<number>;
  /**
   * @inheritDoc
   */
  format(input: string, inputStatus?: InputStatus): string;
  /**
   * get credit card type
   *
   * @param {string} value - card number string
   * @returns {CardConfigType} - card type config
   */
  protected getCreditCardType(value: string): CardConfigType;
  /**
   * get credit card mask config
   *
   * @param {string} value - card number string
   * @returns {Nullable<MaskConfigType>} - mask config type
   */
  protected abstract getCreditCardMaskConfig(value: string): Nullable<MaskConfigType>;
}
