import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Feature } from "./feature.js";
export type Limit = {
    type: Feature;
    /**
     * The amount of quota used by the current request
     */
    usedByRequest?: number | null | undefined;
    /**
     * The remaining quota
     */
    remaining?: number | null | undefined;
    /**
     * The total quota limit
     */
    limit?: number | null | undefined;
    /**
     * Time in UTC when the limit will be reset
     */
    resetTime?: Date | null | undefined;
};
export type LimitsObject = {
    items?: Array<Limit> | undefined;
};
/** @internal */
export declare const Limit$inboundSchema: z.ZodType<Limit, z.ZodTypeDef, unknown>;
/** @internal */
export type Limit$Outbound = {
    type: string;
    used_by_request?: number | null | undefined;
    remaining?: number | null | undefined;
    limit?: number | null | undefined;
    reset_time?: string | null | undefined;
};
/** @internal */
export declare const Limit$outboundSchema: z.ZodType<Limit$Outbound, z.ZodTypeDef, Limit>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Limit$ {
    /** @deprecated use `Limit$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Limit, z.ZodTypeDef, unknown>;
    /** @deprecated use `Limit$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Limit$Outbound, z.ZodTypeDef, Limit>;
    /** @deprecated use `Limit$Outbound` instead. */
    type Outbound = Limit$Outbound;
}
export declare function limitToJSON(limit: Limit): string;
export declare function limitFromJSON(jsonString: string): SafeParseResult<Limit, SDKValidationError>;
/** @internal */
export declare const LimitsObject$inboundSchema: z.ZodType<LimitsObject, z.ZodTypeDef, unknown>;
/** @internal */
export type LimitsObject$Outbound = {
    items?: Array<Limit$Outbound> | undefined;
};
/** @internal */
export declare const LimitsObject$outboundSchema: z.ZodType<LimitsObject$Outbound, z.ZodTypeDef, LimitsObject>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LimitsObject$ {
    /** @deprecated use `LimitsObject$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LimitsObject, z.ZodTypeDef, unknown>;
    /** @deprecated use `LimitsObject$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LimitsObject$Outbound, z.ZodTypeDef, LimitsObject>;
    /** @deprecated use `LimitsObject$Outbound` instead. */
    type Outbound = LimitsObject$Outbound;
}
export declare function limitsObjectToJSON(limitsObject: LimitsObject): string;
export declare function limitsObjectFromJSON(jsonString: string): SafeParseResult<LimitsObject, SDKValidationError>;
//# sourceMappingURL=limitsobject.d.ts.map