import { z } from 'zod';
export declare const ABTestNameSchema: z.ZodString;
export declare const ABTestDescriptionSchema: z.ZodOptional<z.ZodString>;
export declare const ABTestModeSchema: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
    "config-bundle": "config-bundle";
    "target-based": "target-based";
}>>>;
export type ABTestMode = z.infer<typeof ABTestModeSchema>;
export declare const VariantNameSchema: z.ZodEnum<{
    C: "C";
    T1: "T1";
}>;
export declare const VariantWeightSchema: z.ZodNumber;
export declare const ConfigurationBundleRefSchema: z.ZodObject<{
    bundleArn: z.ZodString;
    bundleVersion: z.ZodString;
}, z.core.$strip>;
export type ConfigurationBundleRef = z.infer<typeof ConfigurationBundleRefSchema>;
export declare const TargetRefSchema: z.ZodObject<{
    targetName: z.ZodString;
}, z.core.$strip>;
export type TargetRef = z.infer<typeof TargetRefSchema>;
export declare const VariantConfigurationSchema: z.ZodUnion<readonly [z.ZodObject<{
    configurationBundle: z.ZodObject<{
        bundleArn: z.ZodString;
        bundleVersion: z.ZodString;
    }, z.core.$strip>;
    target: z.ZodOptional<z.ZodNever>;
}, z.core.$strip>, z.ZodObject<{
    configurationBundle: z.ZodOptional<z.ZodNever>;
    target: z.ZodObject<{
        targetName: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>]>;
export type VariantConfiguration = z.infer<typeof VariantConfigurationSchema>;
export declare const ABTestVariantSchema: z.ZodObject<{
    name: z.ZodEnum<{
        C: "C";
        T1: "T1";
    }>;
    weight: z.ZodNumber;
    variantConfiguration: z.ZodUnion<readonly [z.ZodObject<{
        configurationBundle: z.ZodObject<{
            bundleArn: z.ZodString;
            bundleVersion: z.ZodString;
        }, z.core.$strip>;
        target: z.ZodOptional<z.ZodNever>;
    }, z.core.$strip>, z.ZodObject<{
        configurationBundle: z.ZodOptional<z.ZodNever>;
        target: z.ZodObject<{
            targetName: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>]>;
}, z.core.$strip>;
export type ABTestVariant = z.infer<typeof ABTestVariantSchema>;
export declare const PerVariantOnlineEvaluationConfigSchema: z.ZodObject<{
    treatmentName: z.ZodEnum<{
        C: "C";
        T1: "T1";
    }>;
    onlineEvaluationConfigArn: z.ZodString;
}, z.core.$strip>;
export type PerVariantOnlineEvaluationConfig = z.infer<typeof PerVariantOnlineEvaluationConfigSchema>;
export declare const ABTestEvaluationConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
    onlineEvaluationConfigArn: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    perVariantOnlineEvaluationConfig: z.ZodArray<z.ZodObject<{
        treatmentName: z.ZodEnum<{
            C: "C";
            T1: "T1";
        }>;
        onlineEvaluationConfigArn: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>]>;
export type ABTestEvaluationConfig = z.infer<typeof ABTestEvaluationConfigSchema>;
export declare const GatewayFilterSchema: z.ZodObject<{
    targetPaths: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
export type GatewayFilter = z.infer<typeof GatewayFilterSchema>;
export declare const TrafficRouteOnHeaderSchema: z.ZodObject<{
    headerName: z.ZodString;
}, z.core.$strip>;
export declare const TrafficAllocationConfigSchema: z.ZodObject<{
    routeOnHeader: z.ZodObject<{
        headerName: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>;
export type TrafficAllocationConfig = z.infer<typeof TrafficAllocationConfigSchema>;
export declare const ABTestSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        "config-bundle": "config-bundle";
        "target-based": "target-based";
    }>>>;
    gatewayRef: z.ZodString;
    roleArn: z.ZodOptional<z.ZodString>;
    variants: z.ZodArray<z.ZodObject<{
        name: z.ZodEnum<{
            C: "C";
            T1: "T1";
        }>;
        weight: z.ZodNumber;
        variantConfiguration: z.ZodUnion<readonly [z.ZodObject<{
            configurationBundle: z.ZodObject<{
                bundleArn: z.ZodString;
                bundleVersion: z.ZodString;
            }, z.core.$strip>;
            target: z.ZodOptional<z.ZodNever>;
        }, z.core.$strip>, z.ZodObject<{
            configurationBundle: z.ZodOptional<z.ZodNever>;
            target: z.ZodObject<{
                targetName: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>]>;
    }, z.core.$strip>>;
    evaluationConfig: z.ZodUnion<readonly [z.ZodObject<{
        onlineEvaluationConfigArn: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        perVariantOnlineEvaluationConfig: z.ZodArray<z.ZodObject<{
            treatmentName: z.ZodEnum<{
                C: "C";
                T1: "T1";
            }>;
            onlineEvaluationConfigArn: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>]>;
    gatewayFilter: z.ZodOptional<z.ZodObject<{
        targetPaths: z.ZodArray<z.ZodString>;
    }, z.core.$strip>>;
    trafficAllocationConfig: z.ZodOptional<z.ZodObject<{
        routeOnHeader: z.ZodObject<{
            headerName: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>>;
    maxDurationDays: z.ZodOptional<z.ZodNumber>;
    enableOnCreate: z.ZodOptional<z.ZodBoolean>;
    promoted: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export type ABTest = z.infer<typeof ABTestSchema>;
//# sourceMappingURL=ab-test.d.ts.map