import type { ContextAdvisorResult } from '../context-advisor.js';
import { type ResolvedContextWeightedConfig } from '../context-weighted.js';
import { type ResolvedHealthWeightedConfig } from '../health-weighted.js';
import type { RoutePoolTier } from '../types.js';
import type { SelectionDeps, TrySelectFromTierOptions } from './selection-deps.js';
import { type ResolvedTierLoadBalancing } from './tier-load-balancing.js';
export declare function selectProviderKeyWithQuotaBuckets(opts: {
    routeName: string;
    tier: RoutePoolTier;
    stickyKey: string | undefined;
    candidates: string[];
    isSafePool: boolean;
    deps: SelectionDeps;
    options: TrySelectFromTierOptions;
    contextResult: ContextAdvisorResult;
    warnRatio: number;
    excludedKeys: Set<string>;
    isRecoveryAttempt: boolean;
    now: number;
    nowForWeights: number;
    healthWeightedCfg: ResolvedHealthWeightedConfig;
    contextWeightedCfg: ResolvedContextWeightedConfig;
    tierLoadBalancing: ResolvedTierLoadBalancing;
    quotaView: NonNullable<SelectionDeps['quotaView']>;
    isAvailable: (key: string) => boolean;
    selectFirstAvailable: (keys: string[]) => string | null;
    applyAliasStickyQueuePinning: (candidates: string[]) => string[];
    preferAntigravityAliasesOnRetry: (candidates: string[]) => string[];
}): string | null;
