///
import EventEmitter = require("events");
import url = require("url");
export declare type IHandler = (url: url.UrlWithParsedQuery) => Promise;
export declare type ISetHandler = (prevHandler: IHandler) => IHandler;
declare type IPromise = typeof Promise;
export interface IOptions {
html5Mode?: boolean;
handler?: IHandler;
Promise?: IPromise;
}
export declare const urlEqual: (a: url.UrlWithParsedQuery, b: url.UrlWithParsedQuery) => boolean;
export declare const getUrlPathname: (url: url.UrlWithParsedQuery) => string;
export declare class Location extends EventEmitter {
init: () => Promise;
set: (path: string, force?: boolean) => Promise;
setOnly: (path: string) => void;
back: () => void;
forward: () => void;
get: () => url.UrlWithParsedQuery;
history: () => number;
setHtml5Mode: (mode: boolean) => void;
setHandler: (setHandlerFn: ISetHandler) => void;
remove: () => void;
constructor(window: Window, options?: IOptions);
}
export declare const createLocation: (window: Window, options?: IOptions) => Location;
export {};