import { z } from "zod";
/**
 * Token bucket rate limiter for GDS API calls.
 *
 * Provides per-adapter rate limiting with configurable
 * requests-per-second and burst capacity.
 */
export declare const RateLimiterConfigSchema: z.ZodObject<{
    requestsPerSecond: z.ZodNumber;
    burstSize: z.ZodNumber;
}, z.core.$strip>;
export type RateLimiterConfig = z.infer<typeof RateLimiterConfigSchema>;
export declare class RateLimiter {
    private tokens;
    private lastRefill;
    private readonly config;
    constructor(config?: Partial<RateLimiterConfig>);
    /**
     * Check if a request can proceed. Returns true if a token was consumed.
     */
    tryAcquire(): boolean;
    /**
     * Wait until a token is available, then consume it.
     * Returns the wait time in ms (0 if immediate).
     */
    acquire(): Promise<number>;
    /** Current number of available tokens. */
    availableTokens(): number;
    /** Reset to full capacity. */
    reset(): void;
    private refill;
}
//# sourceMappingURL=rate-limiter.d.ts.map