import { EventEmitter } from '../../../stencil-public-runtime';
import { GlobalSlimmers } from '../../../vega-slimmer/vega-slimmer-core';
import { VegaSelectionTileGroupRenderer } from './slimmers/renderers/vega-selection-tile-group-renderer';
import { EventEmitSlimmerBase } from '../../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ChildNodesNotifyObserverSlimmer } from '../../../helpers/event-manager/slimmers/child-nodes-notify-observer-slimmer';
import { VegaSelectionTileGroupValueController } from './slimmers/controllers/vega-selection-tile-group-value-controller';
import { SubStateNotifySlimmerBase } from '../../../helpers/slimmers/sub-state/sub-state-notify-slimmer-base';
import { FormFieldControllerSlimmer } from '../../../helpers/slimmers/form-field-controller-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaSelectionTileGroupItemsController } from './slimmers/controllers/vega-selection-tile-group-items-controller';
import { FormFieldValidationRule } from '../../../helpers/validator/rules/form-field-validation-rule';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../../helpers/slimmers/component-usage-runtime-metrics';
/**
 * @vegaVersion 2.7.0
 */
export declare class VegaSelectionTileGroup {
  protected readonly globalSlimmers: GlobalSlimmers;
  protected readonly renderer: VegaSelectionTileGroupRenderer;
  protected readonly itemsController: VegaSelectionTileGroupItemsController;
  protected readonly valueController: VegaSelectionTileGroupValueController;
  protected readonly formFieldController: FormFieldControllerSlimmer<string | string[]>;
  protected changeEventEmitter: EventEmitSlimmerBase;
  protected checkboxEventPrevent: ChildNodesEventPreventSlimmer;
  protected selectionTileChangeObserver: ChildNodesNotifyObserverSlimmer<boolean>;
  protected readonly selectTypeNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly disabledNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly valueNotifySlimmer: SubStateNotifySlimmerBase;
  protected readonly distributeEvenlyNotifySlimmer: SubStateNotifySlimmerBase;
  protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer<HTMLVegaSelectionTileGroupElement>;
  host: HTMLVegaSelectionTileGroupElement;
  /**
   * Specifies the label or title for the selection tile group.
   *    It provides descriptive text that helps identify
   *    the purpose of the selection tile group.
   *
   * @vegaVersion 2.7.0
   */
  label: string;
  /**
   * Provides a supplementary prompt message that
   *    assists users in selecting the appropriate
   *    value for the selection tile group.
   *
   * @vegaVersion 2.7.0
   */
  hint: string;
  /**
   * Distribute vega-selection-tile components evenly to always cover the entire available width of the vega-selection-tile-group
   *
   * @vegaVersion 2.58.0
   */
  distributeEvenly: boolean;
  watchDistributeEvenly(): void;
  /**
   * Determines the selection method for the tile group. Options are:
   *
   * - `radio`:
   *      Displays a radio button for selection.
   * - `checkbox`:
   *      Displays a checkbox for selection.
   *
   * @vegaVersion 2.7.0
   */
  selectType: 'radio' | 'checkbox';
  watchSelectType(): void;
  /**
   * Stores the selected values of the nested selection tiles
   *    within the selection tile group.
   *
   * @vegaVersion 2.7.0
   */
  value: string | string[];
  watchValue(): void;
  /**
   * Controls the layout of the nested selection tiles
   *    within the selection tile group.
   *
   * @vegaVersion 2.7.0
   */
  layout: 'vertical' | 'horizontal';
  /**
   * Indicates whether at least one selection tile in the
   *    selection tile group must be checked to pass
   *    form validation.
   *
   * @vegaVersion 2.7.0
   */
  required: boolean;
  /**
   * Indicates if the selection tile group is disabled.
   *
   * @vegaVersion 2.7.0
   */
  disabled: boolean;
  watchDisabled(): void;
  /**
   * Defines custom validation rules for the selection tile group field.
   *
   * @vegaVersion 2.7.0
   */
  validationRules: FormFieldValidationRule<unknown>[];
  watchValidationRules(): void;
  /**
   * Sets the validation status for the selection tile group.
   *
   * @vegaVersion 2.7.0
   */
  isValid: boolean;
  /**
   * An event emitter notifying changes in the value of the selection tile group,
   *    whether triggered programmatically or through user interaction.
   *
   * @vegaVersion 2.7.0
   */
  vegaChange: EventEmitter<string>;
  /**
   * An event emitter notifying changes in the value of the selection tile group,
   *    whether triggered programmatically or through user interaction.
   *
   * @eventSemantics namespace:native
   * @vegaVersion 2.7.0
   */
  change: EventEmitter<string>;
  render(): VegaSelectionTileGroup;
}
