You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					241 lines
				
				8.2 KiB
			
		
		
			
		
	
	
					241 lines
				
				8.2 KiB
			| 
											3 years ago
										 | /** | ||
|  |  * Actions represent the type of change to a location value. | ||
|  |  */ | ||
|  | export declare enum Action { | ||
|  |     /** | ||
|  |      * A POP indicates a change to an arbitrary index in the history stack, such | ||
|  |      * as a back or forward navigation. It does not describe the direction of the | ||
|  |      * navigation, only that the current index changed. | ||
|  |      * | ||
|  |      * Note: This is the default action for newly created history objects. | ||
|  |      */ | ||
|  |     Pop = "POP", | ||
|  |     /** | ||
|  |      * A PUSH indicates a new entry being added to the history stack, such as when | ||
|  |      * a link is clicked and a new page loads. When this happens, all subsequent | ||
|  |      * entries in the stack are lost. | ||
|  |      */ | ||
|  |     Push = "PUSH", | ||
|  |     /** | ||
|  |      * A REPLACE indicates the entry at the current index in the history stack | ||
|  |      * being replaced by a new one. | ||
|  |      */ | ||
|  |     Replace = "REPLACE" | ||
|  | } | ||
|  | /** | ||
|  |  * The pathname, search, and hash values of a URL. | ||
|  |  */ | ||
|  | export interface Path { | ||
|  |     /** | ||
|  |      * A URL pathname, beginning with a /. | ||
|  |      */ | ||
|  |     pathname: string; | ||
|  |     /** | ||
|  |      * A URL search string, beginning with a ?. | ||
|  |      */ | ||
|  |     search: string; | ||
|  |     /** | ||
|  |      * A URL fragment identifier, beginning with a #. | ||
|  |      */ | ||
|  |     hash: string; | ||
|  | } | ||
|  | /** | ||
|  |  * An entry in a history stack. A location contains information about the | ||
|  |  * URL path, as well as possibly some arbitrary state and a key. | ||
|  |  */ | ||
|  | export interface Location extends Path { | ||
|  |     /** | ||
|  |      * A value of arbitrary data associated with this location. | ||
|  |      */ | ||
|  |     state: any; | ||
|  |     /** | ||
|  |      * A unique string associated with this location. May be used to safely store | ||
|  |      * and retrieve data in some other storage API, like `localStorage`. | ||
|  |      * | ||
|  |      * Note: This value is always "default" on the initial location. | ||
|  |      */ | ||
|  |     key: string; | ||
|  | } | ||
|  | /** | ||
|  |  * A change to the current location. | ||
|  |  */ | ||
|  | export interface Update { | ||
|  |     /** | ||
|  |      * The action that triggered the change. | ||
|  |      */ | ||
|  |     action: Action; | ||
|  |     /** | ||
|  |      * The new location. | ||
|  |      */ | ||
|  |     location: Location; | ||
|  | } | ||
|  | /** | ||
|  |  * A function that receives notifications about location changes. | ||
|  |  */ | ||
|  | export interface Listener { | ||
|  |     (update: Update): void; | ||
|  | } | ||
|  | /** | ||
|  |  * Describes a location that is the destination of some navigation, either via | ||
|  |  * `history.push` or `history.replace`. May be either a URL or the pieces of a | ||
|  |  * URL path. | ||
|  |  */ | ||
|  | export declare type To = string | Partial<Path>; | ||
|  | /** | ||
|  |  * A history is an interface to the navigation stack. The history serves as the | ||
|  |  * source of truth for the current location, as well as provides a set of | ||
|  |  * methods that may be used to change it. | ||
|  |  * | ||
|  |  * It is similar to the DOM's `window.history` object, but with a smaller, more | ||
|  |  * focused API. | ||
|  |  */ | ||
|  | export interface History { | ||
|  |     /** | ||
|  |      * The last action that modified the current location. This will always be | ||
|  |      * Action.Pop when a history instance is first created. This value is mutable. | ||
|  |      */ | ||
|  |     readonly action: Action; | ||
|  |     /** | ||
|  |      * The current location. This value is mutable. | ||
|  |      */ | ||
|  |     readonly location: Location; | ||
|  |     /** | ||
|  |      * Returns a valid href for the given `to` value that may be used as | ||
|  |      * the value of an <a href> attribute. | ||
|  |      * | ||
|  |      * @param to - The destination URL | ||
|  |      */ | ||
|  |     createHref(to: To): string; | ||
|  |     /** | ||
|  |      * Encode a location the same way window.history would do (no-op for memory | ||
|  |      * history) so we ensure our PUSH/REPLACE navigations for data routers | ||
|  |      * behave the same as POP | ||
|  |      * | ||
|  |      * @param to Unencoded path | ||
|  |      */ | ||
|  |     encodeLocation(to: To): Path; | ||
|  |     /** | ||
|  |      * Pushes a new location onto the history stack, increasing its length by one. | ||
|  |      * If there were any entries in the stack after the current one, they are | ||
|  |      * lost. | ||
|  |      * | ||
|  |      * @param to - The new URL | ||
|  |      * @param state - Data to associate with the new location | ||
|  |      */ | ||
|  |     push(to: To, state?: any): void; | ||
|  |     /** | ||
|  |      * Replaces the current location in the history stack with a new one.  The | ||
|  |      * location that was replaced will no longer be available. | ||
|  |      * | ||
|  |      * @param to - The new URL | ||
|  |      * @param state - Data to associate with the new location | ||
|  |      */ | ||
|  |     replace(to: To, state?: any): void; | ||
|  |     /** | ||
|  |      * Navigates `n` entries backward/forward in the history stack relative to the | ||
|  |      * current index. For example, a "back" navigation would use go(-1). | ||
|  |      * | ||
|  |      * @param delta - The delta in the stack index | ||
|  |      */ | ||
|  |     go(delta: number): void; | ||
|  |     /** | ||
|  |      * Sets up a listener that will be called whenever the current location | ||
|  |      * changes. | ||
|  |      * | ||
|  |      * @param listener - A function that will be called when the location changes | ||
|  |      * @returns unlisten - A function that may be used to stop listening | ||
|  |      */ | ||
|  |     listen(listener: Listener): () => void; | ||
|  | } | ||
|  | /** | ||
|  |  * A user-supplied object that describes a location. Used when providing | ||
|  |  * entries to `createMemoryHistory` via its `initialEntries` option. | ||
|  |  */ | ||
|  | export declare type InitialEntry = string | Partial<Location>; | ||
|  | export declare type MemoryHistoryOptions = { | ||
|  |     initialEntries?: InitialEntry[]; | ||
|  |     initialIndex?: number; | ||
|  |     v5Compat?: boolean; | ||
|  | }; | ||
|  | /** | ||
|  |  * A memory history stores locations in memory. This is useful in stateful | ||
|  |  * environments where there is no web browser, such as node tests or React | ||
|  |  * Native. | ||
|  |  */ | ||
|  | export interface MemoryHistory extends History { | ||
|  |     /** | ||
|  |      * The current index in the history stack. | ||
|  |      */ | ||
|  |     readonly index: number; | ||
|  | } | ||
|  | /** | ||
|  |  * Memory history stores the current location in memory. It is designed for use | ||
|  |  * in stateful non-browser environments like tests and React Native. | ||
|  |  */ | ||
|  | export declare function createMemoryHistory(options?: MemoryHistoryOptions): MemoryHistory; | ||
|  | /** | ||
|  |  * A browser history stores the current location in regular URLs in a web | ||
|  |  * browser environment. This is the standard for most web apps and provides the | ||
|  |  * cleanest URLs the browser's address bar. | ||
|  |  * | ||
|  |  * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory
 | ||
|  |  */ | ||
|  | export interface BrowserHistory extends UrlHistory { | ||
|  | } | ||
|  | export declare type BrowserHistoryOptions = UrlHistoryOptions; | ||
|  | /** | ||
|  |  * Browser history stores the location in regular URLs. This is the standard for | ||
|  |  * most web apps, but it requires some configuration on the server to ensure you | ||
|  |  * serve the same app at multiple URLs. | ||
|  |  * | ||
|  |  * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory
 | ||
|  |  */ | ||
|  | export declare function createBrowserHistory(options?: BrowserHistoryOptions): BrowserHistory; | ||
|  | /** | ||
|  |  * A hash history stores the current location in the fragment identifier portion | ||
|  |  * of the URL in a web browser environment. | ||
|  |  * | ||
|  |  * This is ideal for apps that do not control the server for some reason | ||
|  |  * (because the fragment identifier is never sent to the server), including some | ||
|  |  * shared hosting environments that do not provide fine-grained controls over | ||
|  |  * which pages are served at which URLs. | ||
|  |  * | ||
|  |  * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory
 | ||
|  |  */ | ||
|  | export interface HashHistory extends UrlHistory { | ||
|  | } | ||
|  | export declare type HashHistoryOptions = UrlHistoryOptions; | ||
|  | /** | ||
|  |  * Hash history stores the location in window.location.hash. This makes it ideal | ||
|  |  * for situations where you don't want to send the location to the server for | ||
|  |  * some reason, either because you do cannot configure it or the URL space is | ||
|  |  * reserved for something else. | ||
|  |  * | ||
|  |  * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory
 | ||
|  |  */ | ||
|  | export declare function createHashHistory(options?: HashHistoryOptions): HashHistory; | ||
|  | /** | ||
|  |  * @private | ||
|  |  */ | ||
|  | export declare function invariant(value: boolean, message?: string): asserts value; | ||
|  | export declare function invariant<T>(value: T | null | undefined, message?: string): asserts value is T; | ||
|  | /** | ||
|  |  * Creates a Location object with a unique key from the given Path | ||
|  |  */ | ||
|  | export declare function createLocation(current: string | Location, to: To, state?: any, key?: string): Readonly<Location>; | ||
|  | /** | ||
|  |  * Creates a string URL path from the given pathname, search, and hash components. | ||
|  |  */ | ||
|  | export declare function createPath({ pathname, search, hash, }: Partial<Path>): string; | ||
|  | /** | ||
|  |  * Parses a string URL path into its separate pathname, search, and hash components. | ||
|  |  */ | ||
|  | export declare function parsePath(path: string): Partial<Path>; | ||
|  | export declare function createClientSideURL(location: Location | string): URL; | ||
|  | export interface UrlHistory extends History { | ||
|  | } | ||
|  | export declare type UrlHistoryOptions = { | ||
|  |     window?: Window; | ||
|  |     v5Compat?: boolean; | ||
|  | }; |