import type Collection from "../../core/Collection.js";
import type { Clonable } from "../../core/Clonable.js";
import type { JSONSupportMixin } from "../../core/JSONSupport.js";
import type { ReadonlyArrayOrCollection } from "../../core/Collection.js";

export interface ParquetFilesDataProperties {
  /**
   * Collection of urls for Parquet files.
   *
   * @example
   * // Legacy file-backed alias
   * const layer = new ParquetLayer({
   *   urls: [
   *     "https://example.com/path/to/parquetfile1.parquet",
   *     "https://example.com/path/to/parquetfile2.parquet"
   *   ]
   * });
   */
  urls?: ReadonlyArrayOrCollection<string>;
}

/**
 * Sets one or more Parquet files as the [data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data) source for a [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/).
 *
 * @example
 * // Create a Parquet layer from multiple Parquet files
 * const layer = new ParquetLayer({
 *   data: new ParquetFilesData({
 *     urls: [
 *       "https://example.com/path/to/parquetfile1.parquet",
 *       "https://example.com/path/to/parquetfile2.parquet"
 *     ]
 *   })
 * });
 * @since 5.1
 * @beta
 * @see [ParquetLayer.data](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#data)
 */
export default class ParquetFilesData extends ParquetFilesDataSuperclass {
  constructor(properties?: ParquetFilesDataProperties);
  /**
   * Collection of urls for Parquet files.
   *
   * @example
   * // Legacy file-backed alias
   * const layer = new ParquetLayer({
   *   urls: [
   *     "https://example.com/path/to/parquetfile1.parquet",
   *     "https://example.com/path/to/parquetfile2.parquet"
   *   ]
   * });
   */
  get urls(): Collection<string>;
  set urls(value: ReadonlyArrayOrCollection<string>);
}
declare const ParquetFilesDataSuperclass: typeof Clonable & typeof JSONSupportMixin