import type { IInvokeUrlCommandParameter } from "../api/common";
/**
 * Indicates if the given URLs are the same
 *
 * @export
 * @param {string} url1
 * @param {string} url2
 * @returns {boolean}
 */
export declare function areUrlsSame(url1: string, url2: string): boolean;
/**
 * A parsed component URI
 *
 * @export
 * @interface ParsedComponentUri
 */
export interface ParsedComponentUri {
    name: string;
    props: any;
}
/**
 * Indicates if the given URI is a component URI
 *
 * @export
 * @param {string} uri
 * @returns {boolean}
 */
export declare function isComponentUri(uri: string): boolean;
/**
 * Parses the given component URI. If it not a valid component URI returns undefined
 *
 * @export
 * @param {string} uri
 * @returns {(ParsedComponentUri | undefined)}
 */
export declare function parseComponentUri(uri: string): ParsedComponentUri | undefined;
/**
 * Normalizes the given URL to ensure it has the baseline set of required parameters for invoking any server-side script that uses the MapGuide Web API
 *
 * @export
 * @param {string} url The url to normalize
 * @param {(string | undefined)} mapName The name of the current runtime map
 * @param {(string | undefined)} session The current session id
 * @param {string} [locale] An optional locale
 * @param {boolean} [uppercase=true] If true, will uppercase all parameter names
 * @param {IInvokeUrlCommandParameter[]} [extraParameters=[]] Any extra parameters to append to the URL
 * @returns {string}
 */
export declare function ensureParameters(url: string, mapName: string | undefined, session: string | undefined, locale?: string, uppercase?: boolean, extraParameters?: IInvokeUrlCommandParameter[]): string;
/**
 * Represents a parsed URL with query string separated
 *
 * @export
 * @interface IParsedUrl
 * @since 0.12
 */
export interface IParsedUrl {
    url: string;
    query: any;
}
/**
 * Parses the given URL and separates out the query string parameters
 *
 * @export
 * @param {string} url The URL to parse
 * @returns {IParsedUrl}
 * @since 0.12
 */
export declare function parseUrl(url: string): IParsedUrl;
/**
 * Converts the given object to a query string fragment
 *
 * @export
 * @param {*} parameters The object to stringify
 * @returns {string} The query string fragment
 */
export declare function stringifyQuery(parameters: any): string;
/**
 * Appends the specified parameters to the given URL
 *
 * @export
 * @param {string} url The URL to append parameters to
 * @param {*} parameters The parameters to append
 * @param {boolean} [bOverwriteExisting=true] If true, will overwrite any existing parameters if the URL already has them
 * @param {boolean} [bConvertToUppercase=false] If true, will ensure all parameter names are uppercase
 * @param {boolean} [bDiscardExistingParams=false] If true, will discard existing query string params before appending
 * @since 0.12
 */
export declare function appendParameters(url: string, parameters: any, bOverwriteExisting?: boolean, bConvertToUppercase?: boolean, bDiscardExistingParams?: boolean): any;
/**
 * Parses the query string section of the given URL and returns the parsed
 * parameters as an object
 * @param url The URL to parse
 * @since 0.13
 */
export declare function parseUrlParameters(url: string): any;
