import type { RuntimeCapacityScope, RuntimeCapacityUnit, RuntimeQuotaPolicy, RuntimeScheduleReasonCode, RuntimeScheduleRequest } from "./types.js"; export type RuntimeCapacityMode = "local" | "saas"; export declare const LOCAL_RUNTIME_CAPACITY_SCOPE: RuntimeCapacityScope; export declare const DEFAULT_RUNTIME_CAPACITY_UNIT: RuntimeCapacityUnit; export declare const DEFAULT_RUNTIME_QUOTA_POLICY: RuntimeQuotaPolicy; export interface RuntimeCapacityCounters { active: RuntimeScheduleRequest[]; queued: RuntimeScheduleRequest[]; } export interface RuntimeCapacityValidation { valid: boolean; scope: RuntimeCapacityScope; reasonCode?: RuntimeScheduleReasonCode; userSafeReason?: string; } export interface RuntimeCapacityLimitEvaluation { allowed: boolean; reasonCode?: RuntimeScheduleReasonCode; userSafeReason?: string; } export declare function normalizeRuntimeScheduleRequest(request: RuntimeScheduleRequest, mode: RuntimeCapacityMode, defaultScope?: RuntimeCapacityScope): RuntimeCapacityValidation; export declare function evaluateRuntimeCapacityLimits({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }: { request: RuntimeScheduleRequest; scope: RuntimeCapacityScope; counters: RuntimeCapacityCounters; platformPolicy: RuntimeQuotaPolicy; tenantPolicy: RuntimeQuotaPolicy; workspacePolicy: RuntimeQuotaPolicy; }): RuntimeCapacityLimitEvaluation; export declare function canQueueRuntimeCapacity({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }: { request: RuntimeScheduleRequest; scope: RuntimeCapacityScope; counters: RuntimeCapacityCounters; platformPolicy: RuntimeQuotaPolicy; tenantPolicy: RuntimeQuotaPolicy; workspacePolicy: RuntimeQuotaPolicy; }): RuntimeCapacityLimitEvaluation; export declare function queueReasonForLimit(reasonCode: RuntimeScheduleReasonCode): RuntimeScheduleReasonCode;