import { EventEmitter } from '../../../stencil-public-runtime';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../../helpers/slimmers/component-usage-runtime-metrics';
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 { ColorSwatchPickerRenderer } from './slimmers/renderers/color-swatch-picker-renderer';
import { EventEmitSlimmerBase } from '../../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ColorSwatchGridRenderer } from './slimmers/renderers/color-swatch-grid-renderer';
import { GridColumnsType } from '../../../types/ui.type';
import { ColorSwatchInputRenderer } from './slimmers/renderers/color-swatch-input-renderer';
import { ColorSwatchPickerValueController } from './slimmers/controllers/color-swatch-picker-value-controller';
import { TranslationSlimmer } from '../../../helpers/slimmers/translation';
import { VegaColorSwatchPickerFormatOption } from './types';
import { ColorSwatchPickerColorFormatController } from './slimmers/controllers/color-swatch-picker-color-format-controller';
import { ChildNodesEventPreventSlimmer } from '../../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { PopoverNestedSlotProjectionSlimmer } from '../../../helpers/slimmers/popover-nested-slot-projection-slimmer';
/**
 * A color swatch picker component.
 *
 * @vegaVersion 2.84.0
 *
 * @slot swatch-picker-left - Custom content rendered on the left side of the picker popover. When provided, the popover switches to a two-column layout with a vertical divider.
 */
export declare class VegaColorSwatchPicker {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaColorSwatchPickerElement>;
  protected readonly formFieldController: FormFieldControllerSlimmer<string>;
  protected translationSlimmer: TranslationSlimmer<HTMLVegaColorSwatchPickerElement>;
  protected leftSlotProjection: PopoverNestedSlotProjectionSlimmer;
  protected colorSwatchPickerRenderer: ColorSwatchPickerRenderer;
  protected colorSwatchGridRenderer: ColorSwatchGridRenderer;
  protected colorSwatchInputRenderer: ColorSwatchInputRenderer;
  protected colorSwatchPickerValueController: ColorSwatchPickerValueController;
  protected colorSwatchPickerColorFormatController: ColorSwatchPickerColorFormatController;
  protected childNodeEventPreventSlimmer: ChildNodesEventPreventSlimmer;
  protected changeEventEmitter: EventEmitSlimmerBase;
  host: HTMLVegaColorSwatchPickerElement;
  internalColor: string;
  isPopoverOpen: boolean;
  /**
   * Specifies the currently selected color value.
   *
   * @vegaVersion 2.84.0
   */
  value: string;
  watchValue(): void;
  /**
   * Specifies the label or title for the color swatch picker.
   *   It provides descriptive text that helps identify the purpose
   *   or content expected in the color swatch picker.
   *
   * @vegaVersion 2.84.0
   */
  label: string;
  /**
   * Specifies whether the color swatch picker is disabled.
   *
   * @vegaVersion 2.84.0
   */
  disabled: boolean;
  watchDisabled(): void;
  /**
   * Specifies whether a color value must be selected for the color swatch picker to pass form validation.
   *
   * @vegaVersion 2.84.0
   */
  required: boolean;
  /**
   * Specifies the validation status of the color swatch picker.
   *
   * @vegaVersion 2.84.0
   */
  isValid: boolean | null;
  /**
   * Determines whether automatic validation should be implemented for the color swatch picker.
   *
   * @vegaVersion 2.84.0
   */
  autoValidation: boolean;
  /**
   * Specifies custom validation rules for the color swatch picker.
   *
   * @vegaVersion 2.84.0
   */
  validationRules: FormFieldValidationRule<string>[];
  watchValidationRules(): void;
  /**
   * Specifies the available color options for the color swatch picker.
   *
   * @vegaVersion 2.84.0
   */
  colors: string[];
  /**
   * Specifies the number or configuration of columns in the color
   *   swatch picker grid layout within the popover.
   *
   * @vegaVersion 2.84.0
   */
  swatchGridColumns: GridColumnsType;
  /**
   * Determines whether the custom color input is shown in the color swatch picker popover.
   *
   * @vegaVersion 2.84.0
   */
  showInput: boolean;
  /**
   * Specifies a placeholder string that displays as a temporary hint
   *   or example inside the color swatch picker.
   * It indicates the expected format or pattern of the picker.
   *
   * @vegaVersion 2.84.0
   */
  inputPlaceholder: string;
  /**
   * The icon for the custom color input in the color swatch picker popover.
   * Specifies the icon displayed in the custom color input field
   *   within the color swatch picker popover.
   *
   * @vegaVersion 2.84.0
   * @defaultValue hexColorIcon
   */
  inputPrefixIcon: string;
  /**
   * Determines whether the clear button is shown in the color swatch picker popover.
   *
   * @vegaVersion 2.84.0
   */
  showClearButton: boolean;
  /**
   * Specifies the formatting method for color values in the color swatch picker.
   * It can be set to a predefined format (`hexColorFormatter`) or a custom
   *   formatter function. The `hexColorFormatter` automatically adds a # prefix on output and removes it on input. A custom formatter function
   *   allows more complex formatting logic based on the processing stage (input or output).
   * Applies only when `showInput` is set to `true`.
   *
   * @vegaVersion 2.84.0
   * @defaultValue hexColorFormatter
   */
  inputFormatter: VegaColorSwatchPickerFormatOption;
  watchInputFormatter(): void;
  /**
   * An event emitter notifying the change of the selected color value.
   *
   * @vegaVersion 2.84.0
   */
  vegaChange: EventEmitter<string>;
  /**
   * An event emitter notifying the change of the selected color value.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.84.0
   */
  change: EventEmitter<string>;
  render(): VegaColorSwatchPicker;
}
