import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
import { VercelError } from "./vercelerror.js";
export declare const TooManyRequestsCode: {
    readonly TooManyRequests: "too_many_requests";
};
export type TooManyRequestsCode = ClosedEnum<typeof TooManyRequestsCode>;
export type RetryAfter = {
    value: number;
    str: string;
};
export type Limit = {
    total: number;
    remaining: number;
    reset: number;
};
export type TooManyRequestsData = {
    status: number;
    code: TooManyRequestsCode;
    message: string;
    retryAfter: RetryAfter;
    limit: Limit;
};
export declare class TooManyRequests extends VercelError {
    status: number;
    code: TooManyRequestsCode;
    retryAfter: RetryAfter;
    limit: Limit;
    /** The original data that was passed to this error instance. */
    data$: TooManyRequestsData;
    constructor(err: TooManyRequestsData, httpMeta: {
        response: Response;
        request: Request;
        body: string;
    });
}
/** @internal */
export declare const TooManyRequestsCode$inboundSchema: z.ZodNativeEnum<typeof TooManyRequestsCode>;
/** @internal */
export declare const RetryAfter$inboundSchema: z.ZodType<RetryAfter, z.ZodTypeDef, unknown>;
export declare function retryAfterFromJSON(jsonString: string): SafeParseResult<RetryAfter, SDKValidationError>;
/** @internal */
export declare const Limit$inboundSchema: z.ZodType<Limit, z.ZodTypeDef, unknown>;
export declare function limitFromJSON(jsonString: string): SafeParseResult<Limit, SDKValidationError>;
/** @internal */
export declare const TooManyRequests$inboundSchema: z.ZodType<TooManyRequests, z.ZodTypeDef, unknown>;
//# sourceMappingURL=toomanyrequests.d.ts.map