// Type definitions for Hasher.js // Project: https://github.com/millermedeiros/hasher/ // Definitions by: flyfishMT // Definitions: https://github.com/borisyankov/DefinitelyTyped /// declare module HasherJs { export interface HasherStatic { // {string} hasher.appendHash // String that should always be added to the end of Hash value. appendHash(): string; // default value: ''; // will be automatically removed from `hasher.getHash()` // avoid conflicts with elements that contain ID equal to hash value; // {signals.Signal} hasher.changed // Signal dispatched when hash value changes. - pass current hash as 1st parameter to listeners and previous hash value as 2nd parameter. changed: Signal; // {signals.Signal} hasher.initialized // Signal dispatched when hasher is initialized. - pass current hash as first parameter to listeners. initialized: Signal; // {string} hasher.prependHash // String that should always be added to the beginning of Hash value. prependHash: string; // default value: '/'; // will be automatically removed from `hasher.getHash()` // avoid conflicts with elements that contain ID equal to hash value; // {string} hasher.separator // String used to split hash paths; used by hasher.getHashAsArray() to split paths. separator: string; // default value: '/'; // {signals.Signal} hasher.stopped // Signal dispatched when hasher is stopped. - pass current hash as first parameter to listeners stopped: Signal; // {string} hasher.VERSION // hasher Version Number VERSION: string; // Method Detail // hasher.dispose() // Removes all event listeners, stops hasher and destroy hasher object. - IMPORTANT: hasher won't work after calling this method, hasher Object will be deleted. dispose(): void; // {string} hasher.getBaseURL() // Returns: // {string} Retrieve URL without query string and hash. getBaseURL(): string; // {string} hasher.getHash() // Returns: // {string} Hash value without '#', `hasher.appendHash` and `hasher.prependHash`. getHash(): string; // {Array.} hasher.getHashAsArray() // Returns: // {Array.} Hash value split into an Array. getHashAsArray(): string[]; // {string} hasher.getURL() // Returns: // {string} Full URL. getURL(): string; // hasher.init() // Start listening/dispatching changes in the hash/history. init(): void; // hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons before calling this method. // {boolean} hasher.isActive() // Returns: // {boolean} If hasher is listening to changes on the browser history and/or hash value. isActive(): boolean; // hasher.replaceHash(path) // Set Hash value without keeping previous hash on the history record. Similar to calling window.location.replace("#/hash") but will also work on IE6-7. // hasher.replaceHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' // Parameters: // {...string} path // Hash value without '#'. Hasher will join path segments using `hasher.separator` and prepend/append hash value with `hasher.appendHash` and `hasher.prependHash` replaceHash(...path: string[]): void; // hasher.setHash(path) // Set Hash value, generating a new history record. // hasher.setHash('lorem', 'ipsum', 'dolor') -> '#/lorem/ipsum/dolor' // Parameters: // {...string} path // Hash value without '#'. Hasher will join path segments using `hasher.separator` and prepend/append hash value with `hasher.appendHash` and `hasher.prependHash` setHash(...path: string[]): void; // hasher.stop() // Stop listening/dispatching changes in the hash/history. // hasher won't dispatch CHANGE events by manually typing a new value or pressing the back/forward buttons after calling this method, unless you call hasher.init() again. // hasher will still dispatch changes made programatically by calling hasher.setHash(); stop(): void; // {string} hasher.toString() // Returns: // {string} A string representation of the object. toString(): string; } } declare var hasher: HasherJs.HasherStatic; // AMD declare module 'hasher'{ export = hasher; }