import { z } from 'zod'; export interface TrafficRules { action: { type: string; config: { rateLimitConfig: { algorithm: string; windowSize: number; windowLimit: number; }; aggregate: { keys: { type: string; }[]; }; to?: string; }; }; } export declare const rateLimit: z.ZodObject<{ action: z.ZodOptional>; aggregateBy: z.ZodOptional, z.ZodArray, "many">]>>; algorithm: z.ZodOptional>; } & { windowLimit: z.ZodNumber; windowSize: z.ZodNumber; } & { to: z.ZodOptional; }, "strip", z.ZodTypeAny, { windowLimit: number; windowSize: number; to?: string | undefined; action?: "rate_limit" | "rewrite" | undefined; aggregateBy?: "domain" | "ip" | ("domain" | "ip")[] | undefined; algorithm?: "sliding_window" | undefined; }, { windowLimit: number; windowSize: number; to?: string | undefined; action?: "rate_limit" | "rewrite" | undefined; aggregateBy?: "domain" | "ip" | ("domain" | "ip")[] | undefined; algorithm?: "sliding_window" | undefined; }>; type RateLimit = z.infer; /** * Takes a rate limiting configuration object and returns a traffic rules * object that is added to the manifest. */ export declare const getTrafficRulesConfig: (input: RateLimit) => TrafficRules | undefined; export {};