import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import * as operations from "../models/operations/index.js";
export declare class Budgets extends ClientSDK {
    /**
     * List budgets
     *
     * @remarks
     * Returns budgets visible to the current workspace, ordered by creation time with the newest first. Supports filtering by scope kind, scope target id, period, and active state, plus an optional free-text query that searches across denormalized target names via Typesense.
     */
    list(request?: operations.BudgetListRequest | undefined, options?: RequestOptions): Promise<components.ListBudgetsResponse>;
    /**
     * Create a new budget
     *
     * @remarks
     * Creates a new budget in the workspace. Exactly one scope variant must be set (workspace / project / identity / api_key / provider / model). At least one of `limits.amount`, `limits.token_limit`, or `rate_limit.requests_per_minute` MUST be provided. Uniqueness is enforced across (workspace_id, scope_kind, scope_target_id).
     */
    create(request: components.CreateBudgetRequest, options?: RequestOptions): Promise<components.CreateBudgetResponse>;
    /**
     * Check budget enforcement
     *
     * @remarks
     * Internal endpoint used by the gateway to resolve applicable budgets and check enforcement gates for a request. Returns allowed/rejected status with dimension info for rate-limit headers.
     */
    check(request: components.CheckBudgetsRequest, options?: RequestOptions): Promise<components.CheckBudgetsResponse>;
    /**
     * Retrieve a budget
     *
     * @remarks
     * Retrieves the metadata for an existing budget by its unique identifier. Returns `NotFound` when the budget does not exist in the caller's workspace.
     */
    get(request: operations.BudgetGetRequest, options?: RequestOptions): Promise<components.GetBudgetResponse>;
    /**
     * Delete a budget
     *
     * @remarks
     * Permanently deletes a budget. Consumption counters in Redis for this budget are cleared immediately. The response body is empty on success.
     */
    delete(request: operations.BudgetDeleteRequest, options?: RequestOptions): Promise<components.DeleteBudgetResponse>;
    /**
     * Update a budget
     *
     * @remarks
     * Updates mutable fields of a budget: limits, rate limit, activation, and expiration. The scope is immutable — to change a budget's target, delete and recreate it. Omitted fields keep their current values.
     */
    update(request: operations.BudgetUpdateRequest, options?: RequestOptions): Promise<components.UpdateBudgetResponse>;
    /**
     * Get current-period consumption
     *
     * @remarks
     * Returns the current-period cost, token, and per-minute request counters for the budget. Values reflect the live Redis state for the active period bucket.
     */
    getConsumption(request: operations.BudgetGetConsumptionRequest, options?: RequestOptions): Promise<components.GetBudgetConsumptionResponse>;
    /**
     * Reset budget consumption
     *
     * @remarks
     * Clears the current-period cost, token, and request counters for the budget. The budget record itself is preserved; only the Redis counters are reset.
     */
    resetConsumption(request: operations.BudgetResetConsumptionRequest, options?: RequestOptions): Promise<components.ResetBudgetConsumptionResponse>;
}
//# sourceMappingURL=budgets.d.ts.map