import { EventEmitter } from '../../stencil-public-runtime';
import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaSignatureCaptureRenderer } from './slimmers/renderers/vega-signature-capture-renderer';
import { WrittenModeRenderer } from './slimmers/written-mode/renderers/written-mode-renderer';
import { VegaSignatureCaptureMode, VegaSignatureValue } from './types';
import { WrittenModeSvgController } from './slimmers/written-mode/controllers/written-mode-svg-controller';
import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer';
import { FormFieldValidationRule } from '../../helpers/validator/rules/form-field-validation-rule';
import { HeightType, ResponsiveType } from '../../types/ui.type';
import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer';
import { BreakpointsTokenType } from '../../types/design-token.type';
import { TranslationSlimmer } from '../../helpers/slimmers/translation';
/**
 * @vegaVersion 2.19.0
 */
export declare class VegaSignatureCapture {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected translationSlimmer: TranslationSlimmer<HTMLVegaSignatureCaptureElement>;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaSignatureCaptureElement>;
  protected readonly vegaSignatureCaptureRenderer: VegaSignatureCaptureRenderer;
  protected readonly writtenModeRenderer: WrittenModeRenderer;
  protected readonly writtenModeSvgController: WrittenModeSvgController;
  protected changeEventEmitter: EventEmitSlimmerBase;
  protected formFieldController: FormFieldControllerSlimmer<VegaSignatureValue>;
  protected readonly pageResizeSlimmer: PageResizeObserverSlimmer;
  host: HTMLVegaSignatureCaptureElement;
  currentBreakpoint: BreakpointsTokenType;
  /**
   * Specifies the state of the signature
   */
  isDrawing: boolean;
  /**
   * Specifies the mode of the signature capture
   *
   * @vegaVersion 2.19.0
   */
  mode: VegaSignatureCaptureMode;
  /**
   * Specifies the label or title for the signature capture.
   *
   * It provides descriptive text that helps identify the
   *    purpose or content expected in the signature capture.
   *
   * @vegaVersion 2.19.0
   */
  label: string;
  /**
   * Determines whether the signature capture field is required.
   *
   * @vegaVersion 2.19.0
   */
  required: boolean;
  /**
   * Determines whether the clear button is displayed.
   *
   * @vegaVersion 2.19.0
   */
  showClearBtn: boolean;
  /**
   * Specifies a placeholder string that displays as a temporary hint
   *    or example inside the signature capture.
   *
   * It indicates the expected format or pattern of the signature capture.
   *
   * @vegaVersion 2.19.0
   */
  placeholder: string;
  /**
   * Specifies an icon or symbol that appears before the placeholder,
   *    providing visual context or enhancing the aesthetic appearance
   *    of the signature capture.
   *
   * @vegaVersion 2.19.0
   * @defaultValue v-internal-icon signature
   */
  placeholderIcon: string;
  /**
   * Specifies whether the signature capture is disabled.
   *
   * @vegaVersion 2.19.0
   */
  disabled: boolean;
  /**
   * Specifies the value of the signature capture
   *
   * @vegaVersion 2.19.0
   */
  value: VegaSignatureValue | null;
  watchValue(newValue: VegaSignatureValue, oldValue: VegaSignatureValue): void;
  /**
   * Indicates whether the current value in the field is considered valid or
   *    invalid based on the defined validation rules.
   *
   * @vegaVersion 2.19.0
   */
  isValid: boolean | null;
  /**
   * Determines whether the signature capture field should undergo automatic validation
   *    during the user's sign.
   *
   * @vegaVersion 2.19.0
   */
  autoValidation: boolean;
  /**
   * Defines custom validation rules for the signature capture field.
   *
   * @vegaVersion 2.19.0
   */
  validationRules: FormFieldValidationRule<unknown>[];
  watchValidationRules(): void;
  /**
   * Defines the height of the signature capture field.
   *
   * @vegaVersion 2.20.0
   */
  height: ResponsiveType<HeightType>;
  /**
   * An event emitter notifying a value change.
   *
   * @vegaVersion 2.19.0
   */
  vegaChange: EventEmitter<VegaSignatureValue>;
  /**
   * An event emitter notifying a value change.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.19.0
   */
  change: EventEmitter<VegaSignatureValue>;
  /**
   * Invoke this method to clear the signature
   *
   * @vegaVersion 2.19.0
   */
  clear(): Promise<void>;
  render(): VegaSignatureCapture;
}
