/**
 * Cached Rate Limiter
 *
 * Wraps a rate limit checker with a 60-second TTL cache to avoid
 * making extra API calls on each sync operation.
 *
 * @module core/sync/cached-rate-limiter
 */
export interface RateLimitStatus {
    remaining: number;
    limit: number;
    resetAt: Date;
    percentUsed: number;
}
interface CanProceedResult {
    allowed: boolean;
    waitMs?: number;
    reason?: string;
}
interface RateLimitChecker {
    checkRateLimit(): Promise<RateLimitStatus>;
}
export declare class CachedRateLimiter {
    private readonly checker;
    private cached;
    constructor(checker: RateLimitChecker);
    canProceed(estimatedCalls: number): Promise<CanProceedResult>;
    getStatus(): RateLimitStatus | null;
    private getOrRefresh;
}
export {};
//# sourceMappingURL=cached-rate-limiter.d.ts.map