export type UrlMatchesOptions = { /** * File extensions to consider as equivalent for index pages. * If specified, this overrides the default extensions (.html, .htm). * Default extensions are only used when this option is not provided. * @example [".php", ".jsp"] // Only .php and .jsp are considered, .html and .htm are ignored */ extensions?: string[]; }; /** * Compares two URLs and determines if they are equivalent. * * This function handles: * - URL encoding normalization (e.g., `%20` and space are equivalent) * - Trailing slash normalization (e.g., `/` and `/index` are equivalent) * - Index page variations (e.g., `/index`, `/index.html`, `/index.php`) * - Query parameter order normalization * - Hash and authentication information are ignored * @param url1 - The first URL to compare * @param url2 - The second URL to compare * @param options - Optional configuration for extension matching * @returns `true` if the URLs are equivalent, `false` otherwise * @example * ```ts * urlMatches('https://example.com/', 'https://example.com'); // true * urlMatches('https://example.com/index', 'https://example.com/index.html'); // true * urlMatches('https://example.com/index', 'https://example.com/index.php', { extensions: ['.php'] }); // true * ``` */ export declare function urlMatches(url1: string, url2: string, options?: UrlMatchesOptions): boolean;