import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { AnalysisConfigInput, AnalysisConfigInput$Outbound } from "./analysisconfiginput.js";
import { IterationInput, IterationInput$Outbound } from "./iterationinput.js";
/**
 * The results analysis approach. Defaults to "frequentist" when not provided, or "bayesian" for multi-armed bandit experiments.
 */
export declare const ExperimentPostMethodology: {
    readonly Bayesian: "bayesian";
    readonly Frequentist: "frequentist";
    readonly ExportOnly: "export_only";
};
/**
 * The results analysis approach. Defaults to "frequentist" when not provided, or "bayesian" for multi-armed bandit experiments.
 */
export type ExperimentPostMethodology = ClosedEnum<typeof ExperimentPostMethodology>;
/**
 * The source of metric data in order to analyze results. Defaults to "launchdarkly" when not provided.
 */
export declare const ExperimentPostDataSource: {
    readonly Launchdarkly: "launchdarkly";
    readonly Snowflake: "snowflake";
};
/**
 * The source of metric data in order to analyze results. Defaults to "launchdarkly" when not provided.
 */
export type ExperimentPostDataSource = ClosedEnum<typeof ExperimentPostDataSource>;
/**
 * The type of experiment.
 */
export declare const ExperimentPostType: {
    readonly Experiment: "experiment";
    readonly Mab: "mab";
    readonly Holdout: "holdout";
};
/**
 * The type of experiment.
 */
export type ExperimentPostType = ClosedEnum<typeof ExperimentPostType>;
export type ExperimentPost = {
    /**
     * The experiment name
     */
    name: string;
    /**
     * The experiment description
     */
    description?: string | undefined;
    /**
     * The ID of the member who maintains this experiment
     */
    maintainerId?: string | undefined;
    /**
     * The experiment key
     */
    key: string;
    iteration: IterationInput;
    /**
     * The ID of the holdout
     */
    holdoutId?: string | undefined;
    /**
     * Tags for the experiment
     */
    tags?: Array<string> | undefined;
    /**
     * The results analysis approach. Defaults to "frequentist" when not provided, or "bayesian" for multi-armed bandit experiments.
     */
    methodology?: ExperimentPostMethodology | undefined;
    analysisConfig?: AnalysisConfigInput | undefined;
    /**
     * The source of metric data in order to analyze results. Defaults to "launchdarkly" when not provided.
     */
    dataSource?: ExperimentPostDataSource | undefined;
    /**
     * The type of experiment.
     */
    type?: ExperimentPostType | undefined;
};
/** @internal */
export declare const ExperimentPostMethodology$inboundSchema: z.ZodNativeEnum<typeof ExperimentPostMethodology>;
/** @internal */
export declare const ExperimentPostMethodology$outboundSchema: z.ZodNativeEnum<typeof ExperimentPostMethodology>;
/** @internal */
export declare const ExperimentPostDataSource$inboundSchema: z.ZodNativeEnum<typeof ExperimentPostDataSource>;
/** @internal */
export declare const ExperimentPostDataSource$outboundSchema: z.ZodNativeEnum<typeof ExperimentPostDataSource>;
/** @internal */
export declare const ExperimentPostType$inboundSchema: z.ZodNativeEnum<typeof ExperimentPostType>;
/** @internal */
export declare const ExperimentPostType$outboundSchema: z.ZodNativeEnum<typeof ExperimentPostType>;
/** @internal */
export declare const ExperimentPost$inboundSchema: z.ZodType<ExperimentPost, z.ZodTypeDef, unknown>;
/** @internal */
export type ExperimentPost$Outbound = {
    name: string;
    description?: string | undefined;
    maintainerId?: string | undefined;
    key: string;
    iteration: IterationInput$Outbound;
    holdoutId?: string | undefined;
    tags?: Array<string> | undefined;
    methodology?: string | undefined;
    analysisConfig?: AnalysisConfigInput$Outbound | undefined;
    dataSource?: string | undefined;
    type?: string | undefined;
};
/** @internal */
export declare const ExperimentPost$outboundSchema: z.ZodType<ExperimentPost$Outbound, z.ZodTypeDef, ExperimentPost>;
export declare function experimentPostToJSON(experimentPost: ExperimentPost): string;
export declare function experimentPostFromJSON(jsonString: string): SafeParseResult<ExperimentPost, SDKValidationError>;
//# sourceMappingURL=experimentpost.d.ts.map