import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { BudgetPeriod } from "./budgetperiod.js";
/**
 * BudgetLimits is the per-period spend and token ceiling. At least one
 *
 * @remarks
 *  of `amount`, `token_limit`, or RateLimit.requests_per_minute MUST be
 *  set on a Budget; that invariant is enforced by the handler.
 */
export type BudgetLimits = {
    period?: BudgetPeriod | undefined;
    amount?: number | undefined;
    /**
     * Token ceiling. Carried as a double so it serializes as a JSON number
     *
     * @remarks
     *  (proto int64 would serialize as a quoted string); token counts are
     *  whole and well within double's exact-integer range (2^53). Stored as
     *  an integer server-side.
     */
    tokenLimit?: number | undefined;
};
/** @internal */
export declare const BudgetLimits$inboundSchema: z.ZodType<BudgetLimits, z.ZodTypeDef, unknown>;
/** @internal */
export type BudgetLimits$Outbound = {
    period?: string | undefined;
    amount?: number | undefined;
    token_limit?: number | undefined;
};
/** @internal */
export declare const BudgetLimits$outboundSchema: z.ZodType<BudgetLimits$Outbound, z.ZodTypeDef, BudgetLimits>;
export declare function budgetLimitsToJSON(budgetLimits: BudgetLimits): string;
export declare function budgetLimitsFromJSON(jsonString: string): SafeParseResult<BudgetLimits, SDKValidationError>;
//# sourceMappingURL=budgetlimits.d.ts.map