import * as z from "zod/v3";
import { BudgetLimits, BudgetLimits$Outbound } from "./budgetlimits.js";
import { BudgetMatch, BudgetMatch$Outbound } from "./budgetmatch.js";
import { RateLimit, RateLimit$Outbound } from "./ratelimit.js";
export type UpdateBudgetRequest = {
    /**
     * New limits. Omit to keep current.
     */
    limits?: BudgetLimits | undefined;
    /**
     * New rate limit. Omit to keep current.
     */
    rateLimit?: RateLimit | undefined;
    /**
     * New active state. Omit to keep current.
     */
    isActive?: boolean | undefined;
    /**
     * New expiration. Omit to keep current. Set `clear_expires_at = true`
     *
     * @remarks
     *  to remove an existing expiration.
     */
    expiresAt?: Date | undefined;
    /**
     * Force-clear the expiration. Mutually exclusive with `expires_at`.
     */
    clearExpiresAt?: boolean | undefined;
    /**
     * New matching expression. Only valid for dynamic budgets (no
     *
     * @remarks
     *  structured scope) — the scope of a scoped budget is immutable, so
     *  its derived expression is too. Validated via CEL parse.
     */
    match?: BudgetMatch | undefined;
};
/** @internal */
export type UpdateBudgetRequest$Outbound = {
    limits?: BudgetLimits$Outbound | undefined;
    rate_limit?: RateLimit$Outbound | undefined;
    is_active?: boolean | undefined;
    expires_at?: string | undefined;
    clear_expires_at?: boolean | undefined;
    match?: BudgetMatch$Outbound | undefined;
};
/** @internal */
export declare const UpdateBudgetRequest$outboundSchema: z.ZodType<UpdateBudgetRequest$Outbound, z.ZodTypeDef, UpdateBudgetRequest>;
export declare function updateBudgetRequestToJSON(updateBudgetRequest: UpdateBudgetRequest): string;
//# sourceMappingURL=updatebudgetrequest.d.ts.map