/** * Cookie Manager * * P1 - Browser cookie management * * Supports: * - Cookie CRUD operations * - HttpOnly cookie handling * - Secure cookies (HTTPS only) * - SameSite attribute (Strict, Lax, None) * - Third-party cookie detection * - Cookie validation and security checks * * @see https://playwright.dev/docs/api/class-browsercontext#browser-context-cookies */ export interface CookieOptions { /** Cookie name */ name: string; /** Cookie value */ value: string; /** Cookie domain */ domain?: string; /** Cookie path */ path?: string; /** HttpOnly flag (JS inaccessible) */ httpOnly?: boolean; /** Secure flag (HTTPS only) */ secure?: boolean; /** SameSite attribute */ sameSite?: 'Strict' | 'Lax' | 'None'; /** Expiration date (Unix timestamp) */ expires?: number; /** URL for setting cookie */ url?: string; } export interface CookieValidationResult { /** Cookie is valid */ valid: boolean; /** Cookie has HttpOnly flag */ httpOnly: boolean; /** Cookie has Secure flag */ secure: boolean; /** SameSite attribute value */ sameSite: 'Strict' | 'Lax' | 'None' | null; /** Security score (0-100) */ securityScore: number; /** Security issues found */ issues: string[]; /** Is third-party cookie */ isThirdParty: boolean; } export interface CookieFilterOptions { /** Filter by name pattern */ namePattern?: string | RegExp; /** Filter by domain */ domain?: string; /** HttpOnly only */ httpOnly?: boolean; /** Secure only */ secure?: boolean; /** SameSite value */ sameSite?: 'Strict' | 'Lax' | 'None'; /** Third-party only */ thirdParty?: boolean; } /** * Cookie Manager class */ export declare class CookieManager { private context; private baseUrl; constructor(context: any, baseUrl: string); /** * Get all cookies from context */ getAllCookies(): Promise; /** * Get cookies filtered by criteria */ getCookies(filter?: CookieFilterOptions): Promise; /** * Get a specific cookie by name */ getCookie(name: string): Promise; /** * Set a cookie */ setCookie(options: CookieOptions): Promise; /** * Set multiple cookies */ setCookies(cookies: CookieOptions[]): Promise; /** * Update a cookie's value */ updateCookie(name: string, value: string, options?: Partial): Promise; /** * Remove a specific cookie */ removeCookie(name: string): Promise; /** * Remove cookies by filter */ removeCookies(filter: CookieFilterOptions): Promise; /** * Clear all cookies */ clearAllCookies(): Promise; /** * Validate a cookie's security settings */ validateCookie(cookie: any, baseUrl: string): CookieValidationResult; /** * Validate all cookies */ validateAllCookies(): Promise>; /** * Get security report for all cookies */ getSecurityReport(): Promise<{ total: number; secure: number; httpOnly: number; sameSite: { Strict: number; Lax: number; None: number; unset: number; }; thirdParty: number; avgSecurityScore: number; vulnerableCookies: Array<{ name: string; issues: string[]; }>; }>; /** * Export cookies as JSON string */ exportCookies(): Promise; /** * Import cookies from JSON string */ importCookies(cookieJson: string): Promise; /** * Get cookies sorted by name */ getSortedCookies(): Promise; /** * Get session cookies (no expiration) */ getSessionCookies(): Promise; /** * Get persistent cookies (with expiration) */ getPersistentCookies(): Promise; /** * Get expired cookies */ getExpiredCookies(): Promise; } /** * Factory function to create Cookie Manager */ export declare function createCookieManager(context: any, baseUrl: string): CookieManager; export default CookieManager;