export interface RegistrationConfig {
  type: string;
  content: RegCfgContent;
}
interface RegCfgContent {
  actions: string[];
  fields: RegCfgContentField[];
  registrationID: string;
  step: string;
}
export interface RegCfgContentField {
  action: string;
  autofill: boolean;
  data?: Values;
  defaultValue: string;
  inputType: string;
  tooltip: string;
  multiple: false;
  name: string;
  readOnly: boolean;
  displayName: string;
  placeholder?: string;
  validate: ValidationSchema;
}
export interface ValidationSchema {
  mandatory: boolean;
  type?: string;
  custom?: CustomValidationRules[];
  minLength?: number;
  maxLength?: number;
  min?: number;
  max?: number;
}
export interface CustomValidationRules {
  rule: string;
  errorMessage: string;
  errorKey: string;
  pattern?: string;
  displayName?: string;
}
export interface CustomRule {
  rule: string;
  errorMessage: string;
}
interface Values {
  values?: Option[];
  subFields?: RegCfgContentField[];
}
export interface Option {
  value: string;
  label: string;
}
export interface InputStateEvent {
  valid: boolean;
  name: string;
}
export interface InputValueEvent {
  value: string;
  name: string;
  type?: string;
}
export interface InputValue {
  value: string;
  name: string;
  isDuplicate: boolean;
  type?: string;
}
export interface InputValidity {
  isValid: boolean;
  name: string;
}
export interface RegisterStep {
  registrationId: string;
}
export interface StepState {
  event: string;
  type: string;
}
export interface PasswordComplexity {
  rule: string;
  passed: boolean;
  ruleKey: string;
}
export interface ValueObject {
  name: string;
}
export {};
