import type { ProbeConfig } from "../types";

declare const validatedConfigBrand: unique symbol;

export type AuthoringProbeConfig = ProbeConfig;

export type JsonValue = boolean | JsonValue[] | null | number | string | { [key: string]: JsonValue };

export type NormalizedProbeConfig = Omit<ProbeConfig, "variables">;

export type RawProbeConfig = AuthoringProbeConfig;

export type ValidatedProbeConfig = NormalizedProbeConfig & { readonly [validatedConfigBrand]: true };

export function asValidatedConfig(config: NormalizedProbeConfig): ValidatedProbeConfig {
  return config as ValidatedProbeConfig;
}
