import * as z from "zod/v4";
import { ContentFilterBuiltinEntryInput, ContentFilterBuiltinEntryInput$Outbound } from "./contentfilterbuiltinentryinput.js";
import { ContentFilterEntry, ContentFilterEntry$Outbound } from "./contentfilterentry.js";
import { GuardrailInterval } from "./guardrailinterval.js";
export type CreateGuardrailRequest = {
    /**
     * Array of model identifiers (slug or canonical_slug accepted)
     */
    allowedModels?: Array<string> | null | undefined;
    /**
     * List of allowed provider IDs
     */
    allowedProviders?: Array<string> | null | undefined;
    /**
     * Builtin content filters to apply. Every builtin slug supports "block", "redact", and the detect-only "flag" action.
     */
    contentFilterBuiltins?: Array<ContentFilterBuiltinEntryInput> | null | undefined;
    /**
     * Custom regex content filters to apply to request messages
     */
    contentFilters?: Array<ContentFilterEntry> | null | undefined;
    /**
     * Description of the guardrail
     */
    description?: string | null | undefined;
    /**
     * Whether this guardrail allows free endpoints that publish prompts.
     */
    enableFreeModelPublication?: boolean | null | undefined;
    /**
     * Whether this guardrail allows free endpoints that train on request data.
     */
    enableFreeModelTraining?: boolean | null | undefined;
    /**
     * Whether this guardrail allows paid endpoints that train on request data.
     */
    enablePaidModelTraining?: boolean | null | undefined;
    /**
     * Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    enforceZdr?: boolean | null | undefined;
    /**
     * Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided.
     */
    enforceZdrAnthropic?: boolean | null | undefined;
    /**
     * Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided.
     */
    enforceZdrGoogle?: boolean | null | undefined;
    /**
     * Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided.
     */
    enforceZdrOpenai?: boolean | null | undefined;
    /**
     * Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.
     */
    enforceZdrOther?: boolean | null | undefined;
    /**
     * Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.
     */
    enforceZdrXai?: boolean | null | undefined;
    /**
     * Array of model identifiers to exclude from routing (slug or canonical_slug accepted)
     */
    ignoredModels?: Array<string> | null | undefined;
    /**
     * List of provider IDs to exclude from routing
     */
    ignoredProviders?: Array<string> | null | undefined;
    /**
     * Whether BYOK (bring-your-own-key) inference spend counts toward this guardrail's limit_usd, in addition to OpenRouter credit spend. Defaults to false.
     */
    includeByokInBudgets?: boolean | undefined;
    /**
     * Spending limit in USD
     */
    limitUsd?: number | null | undefined;
    /**
     * Name for the new guardrail
     */
    name: string;
    /**
     * Interval at which the limit resets (daily, weekly, monthly)
     */
    resetInterval?: GuardrailInterval | null | undefined;
    /**
     * The workspace to create the guardrail in. When omitted, the guardrail is created in the default workspace; if that default has been deleted, the request returns a 400 and you must pass `workspace_id` explicitly. This only places the guardrail in the workspace; the created guardrail enforces nothing for that workspace's traffic until it is assigned to API keys or members. To restrict all traffic in a workspace, update the workspace's default guardrail instead.
     */
    workspaceId?: string | undefined;
};
/** @internal */
export type CreateGuardrailRequest$Outbound = {
    allowed_models?: Array<string> | null | undefined;
    allowed_providers?: Array<string> | null | undefined;
    content_filter_builtins?: Array<ContentFilterBuiltinEntryInput$Outbound> | null | undefined;
    content_filters?: Array<ContentFilterEntry$Outbound> | null | undefined;
    description?: string | null | undefined;
    enable_free_model_publication?: boolean | null | undefined;
    enable_free_model_training?: boolean | null | undefined;
    enable_paid_model_training?: boolean | null | undefined;
    enforce_zdr?: boolean | null | undefined;
    enforce_zdr_anthropic?: boolean | null | undefined;
    enforce_zdr_google?: boolean | null | undefined;
    enforce_zdr_openai?: boolean | null | undefined;
    enforce_zdr_other?: boolean | null | undefined;
    enforce_zdr_xai?: boolean | null | undefined;
    ignored_models?: Array<string> | null | undefined;
    ignored_providers?: Array<string> | null | undefined;
    include_byok_in_budgets?: boolean | undefined;
    limit_usd?: number | null | undefined;
    name: string;
    reset_interval?: string | null | undefined;
    workspace_id?: string | undefined;
};
/** @internal */
export declare const CreateGuardrailRequest$outboundSchema: z.ZodType<CreateGuardrailRequest$Outbound, CreateGuardrailRequest>;
export declare function createGuardrailRequestToJSON(createGuardrailRequest: CreateGuardrailRequest): string;
//# sourceMappingURL=createguardrailrequest.d.ts.map