import { VegaSlimmer } from '../../../../vega-slimmer/vega-slimmer-core';
import { VegaForm } from '../../vega-form';
/**
 * Controller responsible for handling form submission in the VegaForm component.
 */
export declare class VegaFormSubmitController extends VegaSlimmer {
  host: VegaForm['host'];
  useNativeForm: VegaForm['useNativeForm'];
  nativeFormRenderer: VegaForm['nativeFormRenderer'];
  submitEventEmitter: VegaForm['submitEventEmitter'];
  vegaFormFieldController: VegaForm['vegaFormFieldController'];
  private formSubmitEventObserver;
  /**
   * Component lifecycle - [connectedCallback]
   */
  connectedCallback(): void;
  /**
   * Component lifecycle - [disconnectedCallback]
   */
  disconnectedCallback(): void;
  /**
   * Submits the form using native HTML form submission with all current field values.
   *
   * This method collects all form field values, creates hidden input elements for each field,
   * appends them to a container inside the native form, and then triggers the native
   * `requestSubmit()` method to submit the form.
   *
   * The method ensures that the form data is available in the native form for submission,
   * which is useful when `useNativeForm` is enabled.
   *
   * @returns {Promise<void>} Resolves when the form submission process is complete.
   */
  private submitWithFormData;
  /**
   * Creates a hidden input element with the specified name and value.
   *
   * @param {string} name - The name attribute for the hidden input.
   * @param {unknown} value - The value attribute for the hidden input.
   * @returns {HTMLInputElement} The created hidden input element.
   */
  private createHiddenInput;
  /**
   * Registers the form submit event observer with the ChangeManager.
   */
  private registerFormSubmitChangeManager;
  /**
   * Unregister the form submit event observer from the ChangeManager.
   */
  private unregisterFormSubmitChangeManager;
  /**
   * Can accept handler for FORM_SUBMIT.
   *
   * @param {FormEventsPayload} payload - The payload containing the host element that triggered the submit event.
   * @returns {boolean} True if the host element is part of the current form, false otherwise.
   */
  private canAcceptFormSubmitEvent;
  /**
   * Handles the form submission process.
   *
   * @returns {Promise<void>} Resolves when the submission process is complete.
   */
  private handleSubmitEvents;
  /**
   * Flattens a nested object into a single-level object with bracket notation for keys.
   *
   * @param {Record<string, unknown>} data - The nested object to be flattened.
   * @param {string} [parentKey=''] - The prefix for the keys in the flattened object.
   * @param {Record<string, unknown>} [out={}] - The output object that accumulates the flattened key-value pairs.
   * @returns {Record<string, unknown>} The flattened object with bracket notation keys.
   */
  private flattenObjectWithBrackets;
}
