import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { RFCDate } from "../../types/rfcdate.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type GetBudgetRequest = {
    /**
     * Budget ID
     */
    id: string;
};
/**
 * Budget entity type
 */
export declare const GetBudgetType: {
    readonly ApiKey: "api_key";
    readonly Contact: "contact";
    readonly Workspace: "workspace";
};
/**
 * Budget entity type
 */
export type GetBudgetType = ClosedEnum<typeof GetBudgetType>;
/**
 * Budget period type
 */
export declare const GetBudgetPeriod: {
    readonly Daily: "daily";
    readonly Weekly: "weekly";
    readonly Monthly: "monthly";
    readonly Yearly: "yearly";
};
/**
 * Budget period type
 */
export type GetBudgetPeriod = ClosedEnum<typeof GetBudgetPeriod>;
/**
 * Budget configuration
 */
export type GetBudgetBudget = {
    /**
     * Budget period type
     */
    period: GetBudgetPeriod;
    /**
     * Budget amount in USD for the specified period
     */
    amount: number;
};
export type GetBudgetConsumption = {
    /**
     * Current period consumption in USD
     */
    currentAmount: number;
    /**
     * Remaining budget (amount - current_amount)
     */
    remainingAmount: number;
    /**
     * When the current period started
     */
    periodStart: RFCDate | null;
    /**
     * When the current period will reset
     */
    periodEnd: RFCDate | null;
};
/**
 * Budget configuration details
 */
export type GetBudgetResponseBody = {
    /**
     * Unique ULID for the budget configuration
     */
    id: string;
    /**
     * Workspace identifier that owns this budget configuration
     */
    workspaceId: string;
    /**
     * Budget entity type
     */
    type: GetBudgetType;
    /**
     * Contact external identifier (present when type is "contact")
     */
    contactId?: string | undefined;
    /**
     * Budget configuration
     */
    budget: GetBudgetBudget;
    /**
     * Whether this budget configuration is currently active
     */
    isActive: boolean;
    consumption?: GetBudgetConsumption | undefined;
    /**
     * The date and time the resource was created
     */
    created?: Date | undefined;
    /**
     * The date and time the resource was last updated
     */
    updated?: Date | undefined;
};
/** @internal */
export declare const GetBudgetRequest$inboundSchema: z.ZodType<GetBudgetRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetBudgetRequest$Outbound = {
    id: string;
};
/** @internal */
export declare const GetBudgetRequest$outboundSchema: z.ZodType<GetBudgetRequest$Outbound, z.ZodTypeDef, GetBudgetRequest>;
export declare function getBudgetRequestToJSON(getBudgetRequest: GetBudgetRequest): string;
export declare function getBudgetRequestFromJSON(jsonString: string): SafeParseResult<GetBudgetRequest, SDKValidationError>;
/** @internal */
export declare const GetBudgetType$inboundSchema: z.ZodNativeEnum<typeof GetBudgetType>;
/** @internal */
export declare const GetBudgetType$outboundSchema: z.ZodNativeEnum<typeof GetBudgetType>;
/** @internal */
export declare const GetBudgetPeriod$inboundSchema: z.ZodNativeEnum<typeof GetBudgetPeriod>;
/** @internal */
export declare const GetBudgetPeriod$outboundSchema: z.ZodNativeEnum<typeof GetBudgetPeriod>;
/** @internal */
export declare const GetBudgetBudget$inboundSchema: z.ZodType<GetBudgetBudget, z.ZodTypeDef, unknown>;
/** @internal */
export type GetBudgetBudget$Outbound = {
    period: string;
    amount: number;
};
/** @internal */
export declare const GetBudgetBudget$outboundSchema: z.ZodType<GetBudgetBudget$Outbound, z.ZodTypeDef, GetBudgetBudget>;
export declare function getBudgetBudgetToJSON(getBudgetBudget: GetBudgetBudget): string;
export declare function getBudgetBudgetFromJSON(jsonString: string): SafeParseResult<GetBudgetBudget, SDKValidationError>;
/** @internal */
export declare const GetBudgetConsumption$inboundSchema: z.ZodType<GetBudgetConsumption, z.ZodTypeDef, unknown>;
/** @internal */
export type GetBudgetConsumption$Outbound = {
    current_amount: number;
    remaining_amount: number;
    period_start: string | null;
    period_end: string | null;
};
/** @internal */
export declare const GetBudgetConsumption$outboundSchema: z.ZodType<GetBudgetConsumption$Outbound, z.ZodTypeDef, GetBudgetConsumption>;
export declare function getBudgetConsumptionToJSON(getBudgetConsumption: GetBudgetConsumption): string;
export declare function getBudgetConsumptionFromJSON(jsonString: string): SafeParseResult<GetBudgetConsumption, SDKValidationError>;
/** @internal */
export declare const GetBudgetResponseBody$inboundSchema: z.ZodType<GetBudgetResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetBudgetResponseBody$Outbound = {
    _id: string;
    workspace_id: string;
    type: string;
    contact_id?: string | undefined;
    budget: GetBudgetBudget$Outbound;
    is_active: boolean;
    consumption?: GetBudgetConsumption$Outbound | undefined;
    created?: string | undefined;
    updated: string;
};
/** @internal */
export declare const GetBudgetResponseBody$outboundSchema: z.ZodType<GetBudgetResponseBody$Outbound, z.ZodTypeDef, GetBudgetResponseBody>;
export declare function getBudgetResponseBodyToJSON(getBudgetResponseBody: GetBudgetResponseBody): string;
export declare function getBudgetResponseBodyFromJSON(jsonString: string): SafeParseResult<GetBudgetResponseBody, SDKValidationError>;
//# sourceMappingURL=getbudget.d.ts.map