import type { ContextWeightedLoadBalancingConfig } from './types.js';
export type ResolvedContextWeightedConfig = Required<{
    enabled: boolean;
    clientCapTokens: number;
    gamma: number;
    maxMultiplier: number;
}>;
/**
 * Context-weighted constant table (defaults).
 *
 * Intended behavior:
 * - Prefer smaller effective safe context windows early, so that larger windows remain available later.
 * - Compensation is proportional by default (`gamma=1`), but capped by `maxMultiplier`.
 *
 * Notes:
 * - `clientCapTokens` is the maximum effective context the client can consume, even if the model supports more.
 * - The effective safe window is computed using ContextAdvisor's `warnRatio` and model "slack" above the client cap.
 *   - If a model has slack >= the reserved margin, it effectively gets the full client cap as safe window.
 */
export declare const DEFAULT_CONTEXT_WEIGHTED_CONFIG: ResolvedContextWeightedConfig;
export declare function resolveContextWeightedConfig(raw?: ContextWeightedLoadBalancingConfig | null): ResolvedContextWeightedConfig;
export declare function computeEffectiveSafeWindowTokens(options: {
    modelMaxTokens: number;
    warnRatio: number;
    clientCapTokens: number;
}): number;
export declare function computeContextMultiplier(options: {
    effectiveSafeRefTokens: number;
    effectiveSafeTokens: number;
    cfg: ResolvedContextWeightedConfig;
}): number;
