/** * @typed/fp/dom is a collection of abstractions for working with the DOM * @since 0.13.2 */ import { A } from 'ts-toolbelt'; import { ParseSelector } from 'typed-query-selector/parser'; import * as E from './Env'; import * as Fail from './Fail'; import { ArgsOf } from './function'; import * as KV from './KV'; import * as O from './Option'; import * as RS from './ReaderStream'; import { Resume } from './Resume'; import { SchedulerEnv } from './Scheduler'; /** * @category Environment * @since 0.13.2 */ export declare type HistoryEnv = { readonly history: History; }; /** * @category DOM * @since 0.13.2 */ export declare const getHistory: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type LocationEnv = { readonly location: Location; }; /** * @category DOM * @since 0.13.2 */ export declare const getLocation: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type RafEnv = { readonly raf: Resume; }; /** * @category Effect * @since 0.13.2 */ export declare const raf: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type WhenIdleEnv = { readonly whenIdle: Resume; }; /** * @category Effect * @since 0.13.2 */ export declare const whenIdle: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type WindowEnv = { readonly window: Window; }; /** * @category DOM * @since 0.13.2 */ export declare const getWindow: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type DocumentEnv = { readonly document: Document; }; /** * @category DOM * @since 0.13.2 */ export declare const getDocument: E.Env; /** * @category Environment * @since 0.13.2 */ export declare type RootElementEnv = { readonly rootElement: Element; }; /** * @category DOM * @since 0.13.2 */ export declare const getRootElement: E.Env; /** * @category DOM * @since 0.13.2 */ export declare const querySelector: (selector: S) => (el: N) => O.Option>>>; /** * @category DOM * @since 0.13.2 */ export declare const querySelectorAll: (selector: S) => (el: N) => readonly ParseSelector[]; /** * A Failure used to represent being unable to query for our RootElement * @category Failure * @since 0.13.4 */ export declare const QueryRootElementFailure: Fail.Failure<"@typed/fp/dom/QueryRootElementError", { readonly selector: string; readonly message: string; }>; /** * A Failure used to represent being unable to query for our RootElement * @category Environment * @since 0.13.4 */ export declare type QueryRootElementFailure = Fail.EnvOf; /** * Provide the root element to your application by querying for an element in the document * @category DOM * @since 0.13.2 */ export declare const queryRootElement: (selector: string) => E.Env & DocumentEnv, RootElementEnv>; /** * Common setup for rendering an application into an element * @category DOM * @since 0.13.4 */ export declare const patch: any>(patch: Patch) => (stream: RS.ReaderStream[1]>) => RS.ReaderStream, ArgsOf[0]>; /** * Find the default EventMap for a given element * @category Type-level * @since 0.13.4 */ export declare type GetDefaultEventMap = Target extends Window ? WindowEventMap : Target extends Document ? DocumentEventMap : Target extends HTMLBodyElement ? HTMLBodyElementEventMap : Target extends HTMLVideoElement ? HTMLVideoElementEventMap : Target extends HTMLMediaElement ? HTMLMediaElementEventMap : Target extends HTMLFrameSetElement ? HTMLFrameSetElementEventMap : Target extends HTMLElement ? HTMLElementEventMap : Target extends SVGElement ? SVGElementEventMap : Target extends Element ? ElementEventMap : Readonly>; /** * Append the proper CurrentTarget to an Event * @category Type-level * @since 0.13.4 */ export declare type WithCurrentTarget = Ev & { readonly currentTarget: Target; }; /** * @category Use * @since 0.13.4 */ export declare const useEventListener: (getEventListener: E.Env>, eventName: EventName, onEvent: (event: WithCurrentTarget[EventName], Target>) => E.Env) => E.Env>; /** * @category Use * @since 0.13.2 */ export declare const usePopstate: () => E.Env; /** * @category Use * @since 0.13.2 */ export declare const useHashChange: () => E.Env; /** * @category Use * @since 0.13.2 */ export declare const useWhenUrlChanges: (env: E.Env) => E.Env; /** * @category Use * @since 0.13.2 */ export declare const useLocation: E.Env; /** * @category Use * @since 0.13.2 */ export declare const useHistory: E.Env; /** * @category History * @since 0.13.2 */ export declare const pushState: (state: A, path: string) => E.Env; /** * @category History * @since 0.13.2 */ export declare const navigateTo: (path: string) => E.Env; /** * @category History * @since 0.13.2 */ export declare const replaceState: (state: A, path: string) => E.Env; /** * @category History * @since 0.13.2 */ export declare const getState: E.Env; /** * @category History * @since 0.13.3 */ export declare const goBack: E.Env; /** * @category History * @since 0.13.3 */ export declare const goForward: E.Env; /** * @category History * @since 0.13.3 */ export declare const goTo: (n: number) => E.Env; /** * @category Location * @since 0.13.2 */ export declare const reload: E.Env; /** * @category Location * @since 0.13.2 */ export declare const assign: (url: string | URL) => E.Env; /** * @category Location * @since 0.13.3 */ export declare const getHash: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getPathname: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getOrigin: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getHref: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getHost: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getHostname: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getPort: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getProtocol: E.Env; /** * @category Location * @since 0.13.3 */ export declare const getSearch: E.Env; //# sourceMappingURL=dom.d.ts.map