import type { QueryObject } from "../../layer/interfaces.js";
import type { ValidationStatus } from "./interfaces.js";
import type { WebChart, WebGaugeChart } from "../../../spec/web-chart.js";

/**
 * Validates the `WebChart` config and display either `Errors` or `Warnings`.
 *
 * - `Errors`: Violations in the config with regard to the JSON schema.
 * - `Warnings`: Undesired combinations in the config which don't violate the JSON schema but should still be blocked.
 *
 * @param props - The input config, the query object and whether to allow using the object id field as a statistic field.
 * @returns The validation status.
 */
export function validateWebChart(props: {
    input?: WebChart | WebGaugeChart;
    queryObject?: QueryObject;
    allowUsingObjectIdStat?: boolean;
}): Promise<ValidationStatus>;

/**
 * Checks whether the config is "partial", meaning it has been initialized for a given chart type
 * but has not been provided the minimum required prop(s) yet.
 *
 * @param config - The config to analyze
 * @internal
 */
export function isPartialConfig(config?: WebChart): boolean;