declare module 'crypto-js' {
  export const AES: {
    encrypt: (data: string, key: string | CryptoJS.lib.WordArray, cfg?: any) => CryptoJS.lib.CipherParams;
    decrypt: (encryptedData: string | CryptoJS.lib.CipherParams, key: string | CryptoJS.lib.WordArray, cfg?: any) => CryptoJS.lib.WordArray;
  };
  
  export const enc: {
    Utf8: {
      parse: (str: string) => CryptoJS.lib.WordArray;
      stringify: (wordArray: CryptoJS.lib.WordArray) => string;
    };
    Base64: {
      parse: (str: string) => CryptoJS.lib.WordArray;
      stringify: (wordArray: CryptoJS.lib.WordArray) => string;
    };
  };
  
  export const lib: {
    WordArray: any;
    CipherParams: any;
  };
  
  export const mode: {
    CBC: any;
    ECB: any;
  };
  
  export const pad: {
    Pkcs7: any;
    ZeroPadding: any;
  };
  
  export function HmacSHA256(message: string | CryptoJS.lib.WordArray, key: string | CryptoJS.lib.WordArray): CryptoJS.lib.WordArray;
  export function SHA256(message: string | CryptoJS.lib.WordArray): CryptoJS.lib.WordArray;
  export function MD5(message: string | CryptoJS.lib.WordArray): CryptoJS.lib.WordArray;
}