import { BaseModel } from '@/models/BaseModel'; import { QrCodeScanRequest, QrCodeScanCreateOptions, QrCodeScanSearchFilters, QrCodeScanSession } from '@/types/qrcode-scan'; export declare class QrCodeScan extends BaseModel implements QrCodeScanRequest { sessionId: string; offset?: number; limit?: number; constructor(data?: Partial); setSessionId(sessionId: string): this; getSessionId(): string; setOffset(offset: number): this; getOffset(): number; setLimit(limit: number): this; getLimit(): number; getApiEndpoint(): string; validate(): void; toApiFormat(): QrCodeScanRequest; static isValidSessionId(sessionId: string): boolean; static generateSessionId(length?: number): string; static forSession(sessionId: string): QrCodeScan; static forListing(filters?: QrCodeScanSearchFilters, offset?: number, limit?: number): QrCodeScan; static createWithGeneratedSession(length?: number): QrCodeScan; static isSessionExpired(expiresAt: string | Date): boolean; static getTimeUntilExpiry(expiresAt: string | Date): number; static formatTimeUntilExpiry(seconds: number): string; static hasReachedMaxScans(scanCount: number, maxScans?: number): boolean; static getRemainingScans(scanCount: number, maxScans?: number): number | null; static createSessionData(sessionId: string, options?: Partial): QrCodeScanSession; static validateSession(session: QrCodeScanSession): { isValid: boolean; reason?: string; }; static processScan(session: QrCodeScanSession): QrCodeScanSession; static getCommonExpirationTimes(): Record; static getSessionStats(sessions: QrCodeScanSession[]): { total: number; active: number; expired: number; used: number; averageScansPerSession: number; }; } //# sourceMappingURL=QrCodeScan.d.ts.map