import type { Action } from "@vertigis/arcgis-extensions/support/Action";
import type { ItemRef } from "../common/ItemRef.js";
import type { ResultsModelProperties as CommonResultsModelProperties } from "../common/ResultsModelProperties.js";
import type { ComponentModelProperties } from "./ComponentModelProperties.js";
import type { FeatureListProperties } from "./FeatureListProperties.js";
/**
 * @inheritdoc
 */
export interface ResultsModelProperties extends CommonResultsModelProperties, ComponentModelProperties {
    /**
     * A menu used to run commands on specific features or groups of features.
     * (MenuModel).
     */
    featureActions?: ItemRef;
    /**
     * A command or set of commands to execute when a feature or group of
     * features is deselected. Web only.
     */
    onDeselect?: Action;
    /**
     * A command or set of commands to execute when a feature gets added.
     */
    onFeatureAdd?: Action;
    /**
     * A command or set of commands to execute when a feature or group is
     * moused-over. Web only.
     */
    onHover?: Action;
    /**
     * A command or set of commands to execute when a feature or group is has
     * finished the moused-over event. Web only.
     */
    onHoverEnd?: Action;
    /**
     * A command or set of commands to execute when a feature or group of
     * features is selected. Web only.
     */
    onSelect?: Action;
    /**
     * The admin preference for the view mode used to display the results. The
     * default is "ungrouped". Web only.
     */
    viewMode?: ViewMode;
    /**
     * The admin preference for the card size used to display the results. The
     * default is "standard". Web only.
     */
    cardSize?: CardSize;
    /**
     * Whether or not to allow the user to change feature grouping. Web only.
     */
    showViewModeToggle?: boolean;
    /**
     * Whether or not to allow results to be filtered by source. Web only.
     */
    showFilter?: boolean;
    /**
     * Whether or not to allow the user to change the card size. Web only.
     */
    showSizeToggle?: boolean;
    /**
     * The list of features contained by the results model. This property is
     * only serialized into saved projects. Web only.
     */
    results?: FeatureListProperties;
    /**
     * Whether or not the attributes from all one-to-one related records in a
     * feature will display as if they part of the feature. Defaults to false.
     * Web only.
     */
    enableOneToOneAttributeDisplay?: boolean;
}
/**
 * Specifies whether a results list component should display results grouped by
 * source.
 *
 * @webOnly
 */
export type ViewMode = "ungrouped" | "grouped";
/**
 * Specifies what card size a results list component should use to display
 * result items.
 *
 * @webOnly
 */
export type CardSize = "standard" | "compact";
