import type UtilityNetworkAssociationsElement from "../../form/elements/UtilityNetworkAssociationsElement.js";
import type EditableInput from "./EditableInput.js";
import type GroupInput from "./GroupInput.js";
import type { IdentifiableMixin, IdentifiableMixinProperties } from "../../core/Identifiable.js";
import type { EditableInputProperties } from "./EditableInput.js";

export interface UtilityNetworkAssociationInputProperties extends EditableInputProperties, IdentifiableMixinProperties {}

/**
 * @beta
 * @since 4.32
 * @see [FeatureForm](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/)
 * @see [FeatureFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FeatureFormViewModel/)
 * @see [FieldInput](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FieldInput/)
 */
export default class UtilityNetworkAssociationInput extends UtilityNetworkAssociationInputSuperclass {
  constructor(properties?: UtilityNetworkAssociationInputProperties);
  /** Indicates whether the input is editable. */
  get editable(): boolean;
  /** The group containing the relationship input. */
  get group(): GroupInput | null | undefined;
  /** The type of input. */
  get type(): "utilityNetworkAssociations";
  /** Indicates whether the form is currently updating. */
  get updating(): boolean;
  /**
   * Refreshes the [associations view model](https://developers.arcgis.com/javascript/latest/references/core/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel/) for this Input.
   *
   * Re-queries the count of associated features for each association type,
   * as well as the associated features for any open association type.
   *
   * @returns Resolves when the view model finishes querying its associated features.
   */
  refresh(): Promise<void>;
}
declare const UtilityNetworkAssociationInputSuperclass: typeof EditableInput<UtilityNetworkAssociationsElement> & typeof IdentifiableMixin