/** * Tiện ích xử lý tham số truy vấn trên URL (URL Search Parameters). * Cung cấp các phương thức để parse, thêm, xóa, lấy giá trị và so sánh các tham số. */ export declare class UtilsUrlSearchParams { private static instance; private params; /** * Khởi tạo UtilsUrlSearchParams từ một chuỗi query string. * @param paramString Chuỗi tham số (ví dụ: "?id=1&name=test" hoặc đơn giản là "id=1&name=test"). */ constructor(paramString: string); /** * Lấy instance duy nhất (Singleton) của UtilsUrlSearchParams. * @returns {UtilsUrlSearchParams} Instance của lớp. */ static getInstance(): UtilsUrlSearchParams; /** * Chuyển đổi một đối tượng key-value thành chuỗi query string. * @param params Đối tượng chứa các tham số (ví dụ: { id: "1", name: "test" }). * @returns {string} Chuỗi query string đã được sắp xếp theo key (ví dụ: "id=1&name=test"). */ static toStringParamObject(params: { [key in string]: string; }): string; /** * Chuyển đổi mảng các cặp key-value thành chuỗi query string. * Các tham số sẽ được sắp xếp theo thứ tự bảng chữ cái của key. * @param params Mảng các đối tượng { key, value }. * @returns {string} Chuỗi query string. */ static ToString(params: Array<{ key: string; value: string; }>): string; /** * Phân tích chuỗi query string thành mảng các cặp key-value. * Tự động decode các giá trị và xử lý các trường hợp URL lỗi (nhiều dấu ?). * @param paramString Chuỗi cần phân tích. * @returns {Array<{ key: string; value: string }>} Mảng kết quả. */ private buildParams; /** * Thêm hoặc cập nhật giá trị của một tham số. * @param key Tên tham số. * @param value Giá trị tham số. */ set(key: string, value: string): void; /** * Lấy giá trị của một tham số theo key. * @param key Tên tham số cần lấy. * @returns {string | undefined} Giá trị của tham số hoặc undefined nếu không tìm thấy. */ get(key: string): string | undefined; /** * Kiểm tra xem một tham số có tồn tại hay không. * @param key Tên tham số cần kiểm tra. * @returns {boolean} True nếu tồn tại. */ has(key: string): boolean; /** * Xóa một tham số khỏi danh sách. * @param key Tên tham số cần xóa. */ delete(key: string): void; /** * @returns {number} Số lượng tham số hiện có. */ length(): number; /** * Chuyển đổi các tham số hiện tại (hoặc mảng truyền vào) thành chuỗi query string. * @param params (Tùy chọn) Mảng tham số cần convert. Nếu không truyền sẽ dùng params nội bộ. * @returns {string} Chuỗi query string. */ toString(params?: Array<{ key: string; value: string; }>): string; /** * Chuyển đổi danh sách tham số hiện tại thành một đối tượng plain object. * @returns {Record} Đối tượng key-value. */ getParamObject(): Record; /** * So sánh hai chuỗi query string xem chúng có chứa cùng tập tham số và giá trị hay không. * Thứ tự các tham số trong chuỗi ban đầu không quan trọng. * @param param1 Chuỗi thứ nhất. * @param param2 Chuỗi thứ hai. * @returns {boolean} True nếu giống nhau. */ compareParams(param1: string, param2: string): boolean; }