/**
 * All relevant state that can be encoded into the main viewer URL
 * @since 0.13
 */
export interface IAppUrlState {
    x?: number;
    y?: number;
    scale?: number;
    resource?: string;
    locale?: string;
    session?: string;
    map?: string;
    ft?: boolean;
    sl?: string[];
    hl?: string[];
    sg?: string[];
    hg?: string[];
}
/**
 * Updates the main URL with the given application state. If passing extra custom state,
 * this extra custom state is also included when getStateFromUrl() is called.
 *
 * Also if the custom state shares the same keys as the main application state, the application
 * state takes precedence (ie. The key/value in the custom state *will not* overwrite the application state for the same key).
 *
 * To avoid this, you should delete/omit said keys from the application state when calling this method if
 * you want to take the equivalent key/value from the custom state.
 *
 * @export
 * @param {IAppUrlState} state
 * @param {*} [extraState] Any extra state to include into the main URL
 * @param {string[] | undefined} ignoreProps Do not write the following properties to the URL
 *
 * @since 0.13
 * @since 0.14 - New optional extraState argument
 * @since 0.14.9 - New optional ignoreProps argument
 */
export declare function updateUrl(state: IAppUrlState, extraState?: any, ignoreProps?: string[] | undefined): void;
/**
 * Gets the application state from the current main URL. If the URL was updated with custom state
 * via updateUrl(), they will also be included in the returned state.
 *
 * @export
 * @param {string[]} [ignoreKeys]
 * @returns {IAppUrlState}
 * @since 0.13
 * @since 0.14 - New optional ignoreKeys to avoid reading out certain properties from URL state
 */
export declare function getStateFromUrl(ignoreKeys?: string[]): IAppUrlState;
/**
 * Determines if the 2 url state are equal
 * @param a
 * @param b
 * @returns true if both states are equal. false otherwise
 *
 * @since 0.14.5
 */
export declare function areStatesEqual(a: IAppUrlState, b: IAppUrlState): boolean;
