export interface SignatureOptions { secret: string; excludeParams?: string[]; encoding?: 'base64' | 'hex'; } export interface RateLimitInfo { limit: number; window: number; remaining: number; resetTime: number; } export declare class PayrexxSignature { private static readonly DEFAULT_RATE_LIMIT; static buildSignature(data: Record | null, secret: string, options?: Partial): string; static buildRFC1738QueryString(data: Record): string; private static rfc1738Encode; static signRequest(params: Record, secret: string): Record; static verifySignature(params: Record, receivedSignature: string, secret: string): boolean; private static timingSafeEqual; static generateAuthHeaders(params: Record, secret: string, useApiKey?: boolean): Record; static createRateLimiter(): { checkLimit: () => boolean; getRemainingRequests: () => number; getResetTime: () => number; recordRequest: () => void; }; static waitForRateLimit(currentAttempt?: number, maxAttempts?: number): Promise; static parseRateLimitHeaders(headers: Record): RateLimitInfo | null; static createTestSignature(): { params: Record; secret: string; signature: string; queryString: string; }; static validateApiSecret(secret: string): boolean; static generateTestApiSecret(length?: number): string; } //# sourceMappingURL=PayrexxSignature.d.ts.map